Hi all,<br><br>I too am seeing lockup with the revisions that Bill suggests -- the lockup occurs after the shim header/account info is printed.  My entire python script subscribes to a EUR:USD contract right after connecting in order to keep data flowing through the linux pipe.  Right after the header info is printed, an uncommented &quot;d.print_line(t[i - 1], a, b, x);&quot; from &quot;leaf.c&quot; shows the following data below, and then a few lines of data on the EUR:USD contract are printed...then lockup occurs.  If I tail the &quot;ShimText&quot; file, I see that market data is not printing to the log file either.  My entire python code, as you would expect based on the &quot;ShimText&quot; behavior, does not progress passed a readline() statement from the stdout pipe.<br>
<br>The odd thing is that a separate python test script I emailed about last week (and which Paul suggested modifications which fixed the polling lock-up) does *not* lock-up, but my entire python code (which does not appear qualitatively different to me, but is too large to mail -- it includes some other statements for parsing the output, for saving recent history, etc.) does.  I have included the last stdout prints below from the lock-up and non-lock-up version if that helps you.  I have included my sample test python code below which does *not* lock up.  I have been trying to recreate a simple lock-up test-case based on the python code below, which *does* lock up, but have not been able to yet...<br>
<br>The lock-up and non-locked up code both print the same statements from the uncommented line in &quot;leaf.c&quot;, suggesting to me that the cause of the lockup is not at the line in &quot;leaf.c&quot; as Ric suspects.  I would certainly be willing to poke around the source code, but I am not too familiar with it.  Bill, are there files you would recommend scrutinizing?<br>
<br>--Mike<br><br>------------------ output of my python script, which locks-up, just before lock-up --------------------<br>line = Pidx: &gt; 25812 51620 CASH  STK, USD JPY, n/a  JP, EUR !=    6155: 38980125<br>line = Pidx: &lt; 25812 38715 CASH BOND, USD USD, n/a  US, EUR != 37042GXG6: 29203158<br>
line = Pidx: &lt; 25812 32262 CASH BOND, USD USD, n/a  GB, EUR != 44181EA57: 29153511<br>line = Pidx: &gt; 29038 32262 CASH  IND, USD USD, n/a  US, EUR !=    DWCF: 29251810<br>line = Pidx: &lt; 29038 30649 CASH CASH, USD GBP, n/a n/a, EUR !=     CHF: 12087814<br>
line = Pidx: &gt; 29844 30649 CASH  IND, USD USD, n/a n/a, EUR !=  PTJ.IV: 41286944<br>line = Pidx: &gt; 30247 30649 CASH  IND, USD EUR, n/a  EU, EUR !=    SXTE: 17803627<br>line = Pidx: &gt; 30449 30649 CASH  IND, USD JPY, n/a  JP, EUR !=     SEL: 40288569<br>
line = Pidx: &lt; 30449 30548 CASH CASH, USD USD, n/a n/a, EUR !=     HKD: 12345795<br>line = Pidx: &gt; 30499 30548 CASH  IND, USD PLN, n/a n/a, EUR !=     PLN: 16638678<br>line = Pidx: &gt; 30524 30548 CASH  IND, USD IEP, n/a n/a, EUR !=     IEP:  1247078<br>
line = Pidx: &gt; 30537 30548 CASH  IND, USD ATS, n/a n/a, EUR !=  ATSDEM:  3403701<br>line = Pidx: &gt; 30543 30548 CASH CASH, USD USD, n/a n/a, EUR !=     CYP: 36763879<br>line = Pidx: &gt; 30546 30548 CASH CASH, USD USD, n/a n/a, EUR !=     EEK: 36763845<br>
line = Pidx: &lt; 30546 30546 CASH CASH, USD USD, n/a n/a, EUR !=     GBP: 12087797<br>line = Pidx: = 30546 30546 CASH CASH, USD USD, n/a n/a, EUR ==     EUR: 12087792<br>line = Pidx: &gt; 25812 51620 CASH  STK, CAD JPY, n/a  JP, USD !=    6155: 38980125<br>
line = Pidx: &lt; 25812 38715 CASH BOND, CAD USD, n/a  US, USD != 37042GXG6: 29203158<br>line = Pidx: &lt; 25812 32262 CASH BOND, CAD USD, n/a  GB, USD != 44181EA57: 29153511<br>line = Pidx: &gt; 29038 32262 CASH  IND, CAD USD, n/a  US, USD !=    DWCF: 29251810<br>
line = Pidx: &lt; 29038 30649 CASH CASH, CAD GBP, n/a n/a, USD !=     CHF: 12087814<br>line = Pidx: &gt; 29844 30649 CASH  IND, CAD USD, n/a n/a, USD !=  PTJ.IV: 41286944<br>line = Pidx: &gt; 30247 30649 CASH  IND, CAD EUR, n/a  EU, USD !=    SXTE: 17803627<br>
line = Pidx: &gt; 30449 30649 CASH  IND, CAD JPY, n/a  JP, USD !=     SEL: 40288569<br>line = Pidx: &gt; 30550 30649 CASH CASH, CAD USD, n/a n/a, USD !=     HKD: 12345795<br>line = Pidx: &gt; 30600 30649 CASH CASH, CAD EUR, n/a n/a, USD !=     TRY: 41896929<br>
line = Pidx: &gt; 30625 30649 CASH CASH, CAD CAD, n/a n/a, USD !=     NZD: 46189223<br>line = Pidx: &lt; 30625 30636 CASH CASH, CAD CHF, n/a n/a, USD ==     USD: 12087820<br>line = Pidx: &lt; 30625 30629 CASH CASH, CAD CHF, n/a n/a, USD !=     HKD: 12345780<br>
line = Pidx: &lt; 30625 30626 CASH CASH, CAD CHF, n/a n/a, USD !=     CAD: 15016234<br>line = Pidx: = 30625 30626 CASH CASH, CAD CAD, n/a n/a, USD ==     USD: 15016062<br>line = Pidx: &gt; 25812 51620 CASH  STK, CHF JPY, n/a  JP, USD !=    6155: 38980125<br>
line = Pidx: &lt; 25812 38715 CASH BOND, CHF USD, n/a  US, USD != 37042GXG6: 29203158<br>line = Pidx: &lt; 25812 32262 CASH BOND, CHF USD, n/a  GB, USD != 44181EA57: 29153511<br>line = Pidx: &gt; 29038 32262 CASH  IND, CHF USD, n/a  US, USD !=    DWCF: 29251810<br>
line = Pidx: &lt; 29038 30649 CASH CASH, CHF GBP, n/a n/a, USD !=     CHF: 12087814<br>line = Pidx: &gt; 29844 30649 CASH  IND, CHF USD, n/a n/a, USD !=  PTJ.IV: 41286944<br>line = Pidx: &gt; 30247 30649 CASH  IND, CHF EUR, n/a  EU, USD !=    SXTE: 17803627<br>
line = Pidx: &gt; 30449 30649 CASH  IND, CHF JPY, n/a  JP, USD !=     SEL: 40288569<br>line = Pidx: &gt; 30550 30649 CASH CASH, CHF USD, n/a n/a, USD !=     HKD: 12345795<br>line = Pidx: &gt; 30600 30649 CASH CASH, CHF EUR, n/a n/a, USD !=     TRY: 41896929<br>
line = Pidx: &gt; 30625 30649 CASH CASH, CHF CAD, n/a n/a, USD !=     NZD: 46189223<br>line = Pidx: = 30625 30649 CASH CASH, CHF CHF, n/a n/a, USD ==     USD: 12087820<br>line = Pidx: &gt; 25812 51620 CASH  STK, JPY JPY, n/a  JP, USD !=    6155: 38980125<br>
line = Pidx: &lt; 25812 38715 CASH BOND, JPY USD, n/a  US, USD != 37042GXG6: 29203158<br>line = Pidx: &lt; 25812 32262 CASH BOND, JPY USD, n/a  GB, USD != 44181EA57: 29153511<br>line = Pidx: &gt; 29038 32262 CASH  IND, JPY USD, n/a  US, USD !=    DWCF: 29251810<br>
line = Pidx: &gt; 30651 32262 CASH CASH, JPY GBP, n/a n/a, USD !=     CHF: 12087814<br>line = Pidx: &lt; 30651 31455 CASH BOND, JPY USD, n/a  CA, USD != 41013MSN1: 29205057<br>line = Pidx: &lt; 30651 31052 CASH BOND, JPY USD, n/a  CA, USD != 41013M4B3: 29711096<br>
line = Pidx: &lt; 30651 30850 CASH BOND, JPY USD, n/a  BM, USD != 81013RAC9: 29163090<br>line = Pidx: &lt; 30651 30749 CASH CASH, JPY MXN, n/a n/a, USD !=     EUR: 37890904<br>line = Pidx: &gt; 30701 30749 CASH CASH, JPY GCU, n/a n/a, USD !=     ZAR: 44984212<br>
line = Pidx: &gt; 30726 30749 CASH CASH, JPY JPY, n/a n/a, USD !=     EUR: 14321016<br>line = Pidx: &lt; 30726 30736 CASH CASH, JPY KRW, n/a n/a, USD !=     EUR: 36750725<br>line = Pidx: &gt; 30732 30736 CASH CASH, JPY JPY, n/a n/a, USD !=     NZD: 39453444<br>
line = Pidx: &lt; 30732 30733 CASH CASH, JPY KRW, n/a n/a, USD !=     AUD: 36750719<br>line = Pidx: &gt; 30733 30733 CASH CASH, JPY JPY, n/a n/a, USD !=     SEK: 37890923<br>line = Pidx: = 30733 30733 CASH CASH, JPY JPY, n/a n/a, USD ==     USD: 15016059<br>
line = Pidx: &gt; 25812 51620 CASH  STK, SEK JPY, n/a  JP, USD !=    6155: 38980125<br>line = Pidx: &lt; 25812 38715 CASH BOND, SEK USD, n/a  US, USD != 37042GXG6: 29203158<br>line = Pidx: &lt; 25812 32262 CASH BOND, SEK USD, n/a  GB, USD != 44181EA57: 29153511<br>
line = Pidx: &gt; 29038 32262 CASH  IND, SEK USD, n/a  US, USD !=    DWCF: 29251810<br>line = Pidx: &gt; 30651 32262 CASH CASH, SEK GBP, n/a n/a, USD !=     CHF: 12087814<br>line = Pidx: &lt; 30651 31455 CASH BOND, SEK USD, n/a  CA, USD != 41013MSN1: 29205057<br>
line = Pidx: &lt; 30651 31052 CASH BOND, SEK USD, n/a  CA, USD != 41013M4B3: 29711096<br>line = Pidx: &lt; 30651 30850 CASH BOND, SEK USD, n/a  BM, USD != 81013RAC9: 29163090<br>line = Pidx: &gt; 30751 30850 CASH CASH, SEK MXN, n/a n/a, USD !=     EUR: 37890904<br>
line = Pidx: &lt; 30751 30799 CASH BOND, SEK USD, n/a  AU, USD != 202712AE5: 29223126<br>line = Pidx: &gt; 30776 30799 CASH CASH, SEK SEK, n/a n/a, USD !=     NOK: 28027113<br>line = Pidx: &lt; 30776 30786 CASH CASH, SEK TWD, n/a n/a, USD ==     USD: 37928794<br>
line = Pidx: &lt; 30776 30780 CASH CASH, SEK SKK, n/a n/a, USD ==     USD: 34831491<br>line = Pidx: &lt; 30776 30777 CASH CASH, SEK SGD, n/a n/a, USD ==     USD: 37928772<br>line = Pidx: = 30776 30777 CASH CASH, SEK SEK, n/a n/a, USD ==     USD: 37893486<br>
line = 7409|61891|   5026552|3| 1| 5|         7|1|  1.3944|15000000| |price.outcry.bid.   |CASH::EUR:USD:<br>line = 7409|61891|   5026586|3| 1| 5|         7|2|  1.3945|10000000| |price.outcry.ask.   |CASH::EUR:USD:<br>line = 7409|61891|   5026603|3| 2| 5|         7|0|         15000000|0|size.bid.           |CASH::EUR:USD:<br>
line = 7409|61891|   5026616|3| 2| 5|         7|3|         10000000|0|size.ask.           |CASH::EUR:USD:<br>line = 7409|61891|   5026629|3| 2| 5|         7|8|                0|0|size.volume.        |CASH::EUR:USD:<br>line = 7409|61891|   5026652|3| 1| 5|         7|6|       0|       0| |price.summary.high. |CASH::EUR:USD:<br>
line = 7409|61891|   5026674|3| 1| 5|         7|7|       0|       0| |price.summary.low.  |CASH::EUR:USD:<br>line = 7409|61891|   5026691|3| 1| 5|         7|9| 1.39055|       0| |price.summary.close.|CASH::EUR:USD:<br>line = 7409|61891|   5026700|4|103| 0|# |4|103|0|read|<br>
----------------------- end lockup output ---------------<br><br>------------------- output from script which does *not* lockup-------------------<br>line = Pidx: &gt; 25812 51620 CASH  STK, USD JPY, n/a  JP, EUR !=    6155: 38980125<br>
line = Pidx: &lt; 25812 38715 CASH BOND, USD USD, n/a  US, EUR != 37042GXG6: 29203158<br>line = Pidx: &lt; 25812 32262 CASH BOND, USD USD, n/a  GB, EUR != 44181EA57: 29153511<br>line = Pidx: &gt; 29038 32262 CASH  IND, USD USD, n/a  US, EUR !=    DWCF: 29251810<br>
line = Pidx: &lt; 29038 30649 CASH CASH, USD GBP, n/a n/a, EUR !=     CHF: 12087814<br>line = Pidx: &gt; 29844 30649 CASH  IND, USD USD, n/a n/a, EUR !=  PTJ.IV: 41286944<br>line = Pidx: &gt; 30247 30649 CASH  IND, USD EUR, n/a  EU, EUR !=    SXTE: 17803627<br>
line = Pidx: &gt; 30449 30649 CASH  IND, USD JPY, n/a  JP, EUR !=     SEL: 40288569<br>line = Pidx: &lt; 30449 30548 CASH CASH, USD USD, n/a n/a, EUR !=     HKD: 12345795<br>line = Pidx: &gt; 30499 30548 CASH  IND, USD PLN, n/a n/a, EUR !=     PLN: 16638678<br>
line = Pidx: &gt; 30524 30548 CASH  IND, USD IEP, n/a n/a, EUR !=     IEP:  1247078<br>line = Pidx: &gt; 30537 30548 CASH  IND, USD ATS, n/a n/a, EUR !=  ATSDEM:  3403701<br>line = Pidx: &gt; 30543 30548 CASH CASH, USD USD, n/a n/a, EUR !=     CYP: 36763879<br>
line = Pidx: &gt; 30546 30548 CASH CASH, USD USD, n/a n/a, EUR !=     EEK: 36763845<br>line = Pidx: &lt; 30546 30546 CASH CASH, USD USD, n/a n/a, EUR !=     GBP: 12087797<br>line = Pidx: = 30546 30546 CASH CASH, USD USD, n/a n/a, EUR ==     EUR: 12087792<br>
line = Pidx: &gt; 25812 51620 CASH  STK, CAD JPY, n/a  JP, USD !=    6155: 38980125<br>line = Pidx: &lt; 25812 38715 CASH BOND, CAD USD, n/a  US, USD != 37042GXG6: 29203158<br>line = Pidx: &lt; 25812 32262 CASH BOND, CAD USD, n/a  GB, USD != 44181EA57: 29153511<br>
line = Pidx: &gt; 29038 32262 CASH  IND, CAD USD, n/a  US, USD !=    DWCF: 29251810<br>line = Pidx: &lt; 29038 30649 CASH CASH, CAD GBP, n/a n/a, USD !=     CHF: 12087814<br>line = Pidx: &gt; 29844 30649 CASH  IND, CAD USD, n/a n/a, USD !=  PTJ.IV: 41286944<br>
line = Pidx: &gt; 30247 30649 CASH  IND, CAD EUR, n/a  EU, USD !=    SXTE: 17803627<br>line = Pidx: &gt; 30449 30649 CASH  IND, CAD JPY, n/a  JP, USD !=     SEL: 40288569<br>line = Pidx: &gt; 30550 30649 CASH CASH, CAD USD, n/a n/a, USD !=     HKD: 12345795<br>
line = Pidx: &gt; 30600 30649 CASH CASH, CAD EUR, n/a n/a, USD !=     TRY: 41896929<br>line = Pidx: &gt; 30625 30649 CASH CASH, CAD CAD, n/a n/a, USD !=     NZD: 46189223<br>line = Pidx: &lt; 30625 30636 CASH CASH, CAD CHF, n/a n/a, USD ==     USD: 12087820<br>
line = Pidx: &lt; 30625 30629 CASH CASH, CAD CHF, n/a n/a, USD !=     HKD: 12345780<br>line = Pidx: &lt; 30625 30626 CASH CASH, CAD CHF, n/a n/a, USD !=     CAD: 15016234<br>line = Pidx: = 30625 30626 CASH CASH, CAD CAD, n/a n/a, USD ==     USD: 15016062<br>
line = Pidx: &gt; 25812 51620 CASH  STK, CHF JPY, n/a  JP, USD !=    6155: 38980125<br>line = Pidx: &lt; 25812 38715 CASH BOND, CHF USD, n/a  US, USD != 37042GXG6: 29203158<br>line = Pidx: &lt; 25812 32262 CASH BOND, CHF USD, n/a  GB, USD != 44181EA57: 29153511<br>
line = Pidx: &gt; 29038 32262 CASH  IND, CHF USD, n/a  US, USD !=    DWCF: 29251810<br>line = Pidx: &lt; 29038 30649 CASH CASH, CHF GBP, n/a n/a, USD !=     CHF: 12087814<br>line = Pidx: &gt; 29844 30649 CASH  IND, CHF USD, n/a n/a, USD !=  PTJ.IV: 41286944<br>
line = Pidx: &gt; 30247 30649 CASH  IND, CHF EUR, n/a  EU, USD !=    SXTE: 17803627<br>line = Pidx: &gt; 30449 30649 CASH  IND, CHF JPY, n/a  JP, USD !=     SEL: 40288569<br>line = Pidx: &gt; 30550 30649 CASH CASH, CHF USD, n/a n/a, USD !=     HKD: 12345795<br>
line = Pidx: &gt; 30600 30649 CASH CASH, CHF EUR, n/a n/a, USD !=     TRY: 41896929<br>line = Pidx: &gt; 30625 30649 CASH CASH, CHF CAD, n/a n/a, USD !=     NZD: 46189223<br>line = Pidx: = 30625 30649 CASH CASH, CHF CHF, n/a n/a, USD ==     USD: 12087820<br>
line = Pidx: &gt; 25812 51620 CASH  STK, JPY JPY, n/a  JP, USD !=    6155: 38980125<br>line = Pidx: &lt; 25812 38715 CASH BOND, JPY USD, n/a  US, USD != 37042GXG6: 29203158<br>line = Pidx: &lt; 25812 32262 CASH BOND, JPY USD, n/a  GB, USD != 44181EA57: 29153511<br>
line = Pidx: &gt; 29038 32262 CASH  IND, JPY USD, n/a  US, USD !=    DWCF: 29251810<br>line = Pidx: &gt; 30651 32262 CASH CASH, JPY GBP, n/a n/a, USD !=     CHF: 12087814<br>line = Pidx: &lt; 30651 31455 CASH BOND, JPY USD, n/a  CA, USD != 41013MSN1: 29205057<br>
line = Pidx: &lt; 30651 31052 CASH BOND, JPY USD, n/a  CA, USD != 41013M4B3: 29711096<br>line = Pidx: &lt; 30651 30850 CASH BOND, JPY USD, n/a  BM, USD != 81013RAC9: 29163090<br>line = Pidx: &lt; 30651 30749 CASH CASH, JPY MXN, n/a n/a, USD !=     EUR: 37890904<br>
line = Pidx: &gt; 30701 30749 CASH CASH, JPY GCU, n/a n/a, USD !=     ZAR: 44984212<br>line = Pidx: &gt; 30726 30749 CASH CASH, JPY JPY, n/a n/a, USD !=     EUR: 14321016<br>line = Pidx: &lt; 30726 30736 CASH CASH, JPY KRW, n/a n/a, USD !=     EUR: 36750725<br>
line = Pidx: &gt; 30732 30736 CASH CASH, JPY JPY, n/a n/a, USD !=     NZD: 39453444<br>line = Pidx: &lt; 30732 30733 CASH CASH, JPY KRW, n/a n/a, USD !=     AUD: 36750719<br>line = Pidx: &gt; 30733 30733 CASH CASH, JPY JPY, n/a n/a, USD !=     SEK: 37890923<br>
line = Pidx: = 30733 30733 CASH CASH, JPY JPY, n/a n/a, USD ==     USD: 15016059<br>line = Pidx: &gt; 25812 51620 CASH  STK, SEK JPY, n/a  JP, USD !=    6155: 38980125<br>line = Pidx: &lt; 25812 38715 CASH BOND, SEK USD, n/a  US, USD != 37042GXG6: 29203158<br>
line = Pidx: &lt; 25812 32262 CASH BOND, SEK USD, n/a  GB, USD != 44181EA57: 29153511<br>line = Pidx: &gt; 29038 32262 CASH  IND, SEK USD, n/a  US, USD !=    DWCF: 29251810<br>line = Pidx: &gt; 30651 32262 CASH CASH, SEK GBP, n/a n/a, USD !=     CHF: 12087814<br>
line = Pidx: &lt; 30651 31455 CASH BOND, SEK USD, n/a  CA, USD != 41013MSN1: 29205057<br>line = Pidx: &lt; 30651 31052 CASH BOND, SEK USD, n/a  CA, USD != 41013M4B3: 29711096<br>line = Pidx: &lt; 30651 30850 CASH BOND, SEK USD, n/a  BM, USD != 81013RAC9: 29163090<br>
line = Pidx: &gt; 30751 30850 CASH CASH, SEK MXN, n/a n/a, USD !=     EUR: 37890904<br>line = Pidx: &lt; 30751 30799 CASH BOND, SEK USD, n/a  AU, USD != 202712AE5: 29223126<br>line = Pidx: &gt; 30776 30799 CASH CASH, SEK SEK, n/a n/a, USD !=     NOK: 28027113<br>
line = Pidx: &lt; 30776 30786 CASH CASH, SEK TWD, n/a n/a, USD ==     USD: 37928794<br>line = Pidx: &lt; 30776 30780 CASH CASH, SEK SKK, n/a n/a, USD ==     USD: 34831491<br>line = Pidx: &lt; 30776 30777 CASH CASH, SEK SGD, n/a n/a, USD ==     USD: 37928772<br>
line = Pidx: = 30776 30777 CASH CASH, SEK SEK, n/a n/a, USD ==     USD: 37893486<br>line = 7486|63328|   4435517|3| 1| 5|         7|1| 1.39395| 9000000| |price.outcry.bid.   |CASH::EUR:USD:<br>line = 7486|63328|   4435549|3| 1| 5|         7|2|  1.3941|20000000| |price.outcry.ask.   |CASH::EUR:USD:<br>
line = 7486|63328|   4435565|3| 2| 5|         7|0|          9000000|0|size.bid.           |CASH::EUR:USD:<br>line = 7486|63328|   4435578|3| 2| 5|         7|3|         20000000|0|size.ask.           |CASH::EUR:USD:<br>line = 7486|63328|   4435590|3| 2| 5|         7|8|                0|0|size.volume.        |CASH::EUR:USD:<br>
line = 7486|63328|   4435606|3| 1| 5|         7|6|       0|       0| |price.summary.high. |CASH::EUR:USD:<br>line = 7486|63328|   4435625|3| 1| 5|         7|7|       0|       0| |price.summary.low.  |CASH::EUR:USD:<br>line = 7486|63328|   4435642|3| 1| 5|         7|9| 1.39055|       0| |price.summary.close.|CASH::EUR:USD:<br>
line = 7486|63328|   4435650|4|103| 0|# |4|103|0|read|<br>line = 7486|63328|   4475127|3| 2| 5|         7|0|          2000000|0|size.bid.           |CASH::EUR:USD:<br>line = 7486|63328|   4475144|3| 2| 5|         7|3|         22000000|0|size.ask.           |CASH::EUR:USD:<br>
line = 7486|63328|   4475152|4|103| 0|# |4|103|0|read|<br>line = 7486|63329|   5374145|3| 1| 5|         7|1|   1.394| 5000000| |price.outcry.bid.   |CASH::EUR:USD:<br>line = 7486|63329|   5374164|3| 2| 5|         7|0|          5000000|0|size.bid.           |CASH::EUR:USD:<br>
line = 7486|63329|   5374171|4|103| 0|# |4|103|0|read|<br>line = 7486|63329|   6171391|3| 2| 5|         7|0|         13000000|0|size.bid.           |CASH::EUR:USD:<br>line = 7486|63329|   6171408|3| 2| 5|         7|3|         20000000|0|size.ask.           |CASH::EUR:USD:<br>
line = 7486|63329|   6171416|4|103| 0|# |4|103|0|read|<br>line = 7486|63330|   6372825|3| 1| 5|         7|1| 1.39395| 9000000| |price.outcry.bid.   |CASH::EUR:USD:<br>line = 7486|63330|   6372853|3| 1| 5|         7|2| 1.39405| 2000000| |price.outcry.ask.   |CASH::EUR:USD:<br>
line = 7486|63330|   6372870|3| 2| 5|         7|0|          9000000|0|size.bid.           |CASH::EUR:USD:<br>line = 7486|63330|   6372883|3| 2| 5|         7|3|          2000000|0|size.ask.           |CASH::EUR:USD:<br><br>
<br><br>------------- python code which does *not* lock-up for me ----------------------------<br>import subprocess<br>import select<br>import time<br><br>if __name__ == &#39;__main__&#39;:<br>    shimProcess = subprocess.Popen(&#39;/usr/local/shim/shim --risk cout file save&#39;, bufsize=1, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)<br>
    orderSubmitted = False<br>    while True:<br>        select.select([shimProcess.stdout],[],[])<br>        line = shimProcess.stdout.readline().strip()<br>        if (len(line) &gt; 0) and not orderSubmitted:<br>            shimProcess.stdin.write(&quot;select tick CASH:IDEALPRO:EUR:USD 1;\n&quot;)<br>
            shimProcess.stdin.flush()<br>            orderSubmitted = True<br>        print &quot;line = %s&quot; % line<br>---------------------- end python code----------------------------<br><br><div class="gmail_quote">
On Thu, May 21, 2009 at 10:07 PM, Richard Pruss <span dir="ltr">&lt;<a href="mailto:boadie@gmail.com">boadie@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Tried the patches, still seems to lock in leaf.c the modified print line works;<br>
here is the output:<br>
<br>
Pidx: &lt; 30449 30649 CASH CASH, USD USD, n/a n/a, AUD !=     HKD: 12345795<br>
Pidx: &lt; 30449 30649 CASH CASH, USD USD, n/a n/a, AUD !=     HKD: 12345795<br>
Pidx: &lt; 30449 30649 CASH CASH, USD USD, n/a n/a, AUD !=     HKD: 12345795<br>
Pidx: &lt; 30449 30649 CASH CASH, USD USD, n/a n/a, AUD !=     HKD: 12345795<br>
Pidx: &lt; 30449 30649 CASH CASH, USD USD, n/a n/a, AUD !=     HKD: 12345795<br>
Pidx: &lt; 30449 30649 CASH CASH, USD USD, n/a n/a, AUD !=     HKD: 12345795<br>
Pidx: &lt; 30449 30649 CASH CASH, USD USD, n/a n/a, AUD !=     HKD: 12345795<br>
Pidx: &lt; 30449 30649 CASH CASH, USD USD, n/a n/a, AUD !=     HKD: 12345795<br>
Pidx: &lt; 30449 30649 CASH CASH, USD USD, n/a n/a, AUD !=     HKD: 12345795<br>
Pidx: &lt; 30449 30649 CASH CASH, USD USD, n/a n/a, AUD !=     HKD: 12345795<br>
Pidx: &lt; 30449 30649 CASH CASH, USD USD, n/a n/a, AUD !=     HKD: 12345795<br>
Pidx: &lt; 30449 30649 CASH CASH, USD USD, n/a n/a, AUD !=     HKD: 12345795<br>
Pidx: &lt; 30449 30649 CASH CASH, USD USD, n/a n/a, AUD !=     HKD: 12345795<br>
Pidx: &lt; 30449 30649 CASH CASH, USD USD, n/a n/a, AUD !=     HKD: 12345795<br>
Pidx: &lt; 30449 30649 CASH CASH, USD USD, n/a n/a, AUD !=     HKD: 12345795<br>
<br>
Sorry,<br>
Ric<br>
<div><div></div><div class="h5"><br>
On Fri, May 22, 2009 at 9:14 AM, Bill Pippin &lt;<a href="mailto:pippin@owlriver.net">pippin@owlriver.net</a>&gt; wrote:<br>
&gt;&gt; Ric,<br>
&gt;<br>
&gt; Here I need to reply to my previous post, as the fix I posted was<br>
&gt; flawed in two ways:  the fix is still incorrect for some cases; and<br>
&gt; there are related problems elsewhere in the code.<br>
&gt;<br>
&gt; Below is a comprehensive patch, to be applied to the original code, so<br>
&gt; that you need to start *without* having applied my previous patch for<br>
&gt; leaf.c; if you have, you&#39;ll need to either back it out, or start from<br>
&gt; another copy of the sources you&#39;ve derived from the shim-090428.tgz<br>
&gt; tarball.<br>
&gt;<br>
&gt; The patch follows my sig.  If any one is interested in the details of<br>
&gt; the implementation, please feel free to ask on the list, and I&#39;ll<br>
&gt; post an explanation of the patch.<br>
&gt;<br>
&gt; In any case, Ric, please consider applying the patch below to your<br>
&gt; code as noted above, or else wait for the next release, and once having<br>
&gt; done one or the other, please let us know whether your installation of<br>
&gt; the shim works.<br>
&gt;<br>
&gt; Thanks,<br>
&gt;<br>
&gt; Bill<br>
&gt;<br>
&gt; -------- cut here ------------------------------------------------------<br>
&gt;<br>
&gt; *** old/leaf.c  Thu May  7 19:34:16 2009<br>
&gt; --- src/leaf.c  Thu May 21 18:51:01 2009<br>
&gt; ***************<br>
&gt; *** 167,174 ****<br>
&gt;  Product_1 t(vecs.product);<br>
&gt;     Prod_0 p(0);<br>
&gt;      int   x(0);<br>
&gt; !     nat   a(t.base()),<br>
&gt; !           b(t.next());<br>
&gt;<br>
&gt;  //  fprintf(stderr, &quot;Desc: %13s %-4s %4s %4s %3s %4s\n&quot;, &quot;&quot;,<br>
&gt;  //                  d.type  .text(),<br>
&gt; --- 167,174 ----<br>
&gt;  Product_1 t(vecs.product);<br>
&gt;     Prod_0 p(0);<br>
&gt;      int   x(0);<br>
&gt; !     nat   a(t.base() + 1),<br>
&gt; !           b(t.size());<br>
&gt;<br>
&gt;  //  fprintf(stderr, &quot;Desc: %13s %-4s %4s %4s %3s %4s\n&quot;, &quot;&quot;,<br>
&gt;  //                  d.type  .text(),<br>
&gt; ***************<br>
&gt; *** 177,189 ****<br>
&gt;  //                  d.unit  .text(),<br>
&gt;  //                  d.region.text());<br>
&gt;<br>
&gt; !     for(nat i(mid(a, b)); a&lt;b &amp;&amp; !p; i = mid(a, b)) {<br>
&gt; !         switch((x = d.compare(t[i]))) {<br>
&gt; !             case -1: b = i    ; break;<br>
&gt;              case  1: a = i + 1; break;<br>
&gt; !             case  0: p = &amp;t[i];<br>
&gt;          }<br>
&gt; ! //      d.print_line(t[i], a, b, x);<br>
&gt;      }<br>
&gt;  //  fprintf(stderr, &quot;Desc? %u\n&quot;, bool(p));<br>
&gt;<br>
&gt; --- 177,189 ----<br>
&gt;  //                  d.unit  .text(),<br>
&gt;  //                  d.region.text());<br>
&gt;<br>
&gt; !     for(nat i(mid(a, b)); a&lt;=i &amp;&amp; i&lt;=b &amp;&amp; !p; i = mid(a, b)) {<br>
&gt; !         switch((x = d.compare(t[i - 1]))) {<br>
&gt; !             case -1: b = i - 1; break;<br>
&gt;              case  1: a = i + 1; break;<br>
&gt; !             case  0: p = &amp;t[i - 1];<br>
&gt;          }<br>
&gt; ! //      d.print_line(t[i - 1], a, b, x);<br>
&gt;      }<br>
&gt;  //  fprintf(stderr, &quot;Desc? %u\n&quot;, bool(p));<br>
&gt;<br>
&gt; *** old/table.h Wed Mar 11 10:42:42 2009<br>
&gt; --- lib/table.h Thu May 21 18:03:45 2009<br>
&gt; ***************<br>
&gt; *** 167,179 ****<br>
&gt;          T_0           operator[](char_0 k) const { return self[ids[k].id()];  }<br>
&gt;          T_0           operator[](nat key)  const<br>
&gt;          {<br>
&gt; !         nat a(h.base()),<br>
&gt;              b(h.past()), i(Sentinel);<br>
&gt;<br>
&gt; !             for(nat m(mid(a, b)); a&lt;b &amp;&amp; sentinel(i); m = mid(a, b)) {<br>
&gt; !                 if (key &lt; *data[m]()) b = m    ; else<br>
&gt; !                 if (key &gt; *data[m]()) a = m + 1; else i = m;<br>
&gt; !             }<br>
&gt;<br>
&gt;              return sentinel(i) ? 0 : &amp;data[i]();<br>
&gt;          }<br>
&gt; --- 167,179 ----<br>
&gt;          T_0           operator[](char_0 k) const { return self[ids[k].id()];  }<br>
&gt;          T_0           operator[](nat key)  const<br>
&gt;          {<br>
&gt; !         nat a(h.base() + 1),<br>
&gt;              b(h.past()), i(Sentinel);<br>
&gt;<br>
&gt; !             for(nat m(mid(a, b)); a&lt;=m &amp;&amp; m&lt;=b &amp;&amp; sentinel(i); m=mid(a, b))<br>
&gt; !                 if (key &lt; *data[m - 1]()) b = m - 1; else<br>
&gt; !                 if (key &gt; *data[m - 1]()) a = m + 1; else<br>
&gt; !                             i = m - 1;<br>
&gt;<br>
&gt;              return sentinel(i) ? 0 : &amp;data[i]();<br>
&gt;          }<br>
&gt; *** old/search.h        Wed Mar 11 10:42:42 2009<br>
&gt; --- lib/search.h        Thu May 21 19:09:49 2009<br>
&gt; ***************<br>
&gt; *** 42,62 ****<br>
&gt;          size(n),<br>
&gt;           key(**k) {}<br>
&gt;<br>
&gt; !         R_0 operator*() const<br>
&gt; !         {<br>
&gt; !         R_0 p(0);<br>
&gt; !         nat a(0), b(size);<br>
&gt; !<br>
&gt; !             for(nat i(mid_point(a, b)); a&lt;b &amp;&amp; !p; i = mid_point(a, b))<br>
&gt; !                 if (<a href="http://key.id" target="_blank">key.id</a>() &lt; (***data[i]).id()) b = i    ; else<br>
&gt; !                 if (<a href="http://key.id" target="_blank">key.id</a>() &gt; (***data[i]).id()) a = i + 1; else p = data[i];<br>
&gt; !<br>
&gt; !             return p;<br>
&gt; !         }<br>
&gt;<br>
&gt;  private:<br>
&gt;<br>
&gt; !         nat mid_point(nat a, nat b) const { return (a + b) &gt;&gt; 1; }<br>
&gt;<br>
&gt;             R_00 data;<br>
&gt;           nat    size;<br>
&gt; --- 42,63 ----<br>
&gt;          size(n),<br>
&gt;           key(**k) {}<br>
&gt;<br>
&gt; !     R_0 operator*() const<br>
&gt; !     {<br>
&gt; !     R_0 p(0);<br>
&gt; !     nat a(1), b(size);        /* half open interval, offset by 1 from common case */<br>
&gt; !<br>
&gt; !         if (size)<br>
&gt; !             for(nat i(mid(a, b)); a&lt;=i &amp;&amp; i&lt;=b &amp;&amp; !p; i = mid(a, b))<br>
&gt; !                 if (<a href="http://key.id" target="_blank">key.id</a>() &lt; (***data[i-1]).id()) b = i - 1; else<br>
&gt; !                 if (<a href="http://key.id" target="_blank">key.id</a>() &gt; (***data[i-1]).id()) a = i + 1; else<br>
&gt; !                                p = data[i-1];<br>
&gt; !         return p;<br>
&gt; !     }<br>
&gt;<br>
&gt;  private:<br>
&gt;<br>
&gt; !         nat mid(nat a, nat b) const { return (a + b) &gt;&gt; 1; }<br>
&gt;<br>
&gt;             R_00 data;<br>
&gt;           nat    size;<br>
&gt;<br>
<br>
_______________________________________________<br>
ts-general mailing list<br>
<a href="mailto:ts-general@trading-shim.org">ts-general@trading-shim.org</a><br>
<a href="http://www.trading-shim.org/mailman/listinfo/ts-general" target="_blank">http://www.trading-shim.org/mailman/listinfo/ts-general</a><br>
</div></div></blockquote></div><br>