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 "d.print_line(t[i - 1], a, b, x);" from "leaf.c" 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 "ShimText" 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 "ShimText" 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 "leaf.c", suggesting to me that the cause of the lockup is not at the line in "leaf.c" 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: > 25812 51620 CASH STK, USD JPY, n/a JP, EUR != 6155: 38980125<br>line = Pidx: < 25812 38715 CASH BOND, USD USD, n/a US, EUR != 37042GXG6: 29203158<br>
line = Pidx: < 25812 32262 CASH BOND, USD USD, n/a GB, EUR != 44181EA57: 29153511<br>line = Pidx: > 29038 32262 CASH IND, USD USD, n/a US, EUR != DWCF: 29251810<br>line = Pidx: < 29038 30649 CASH CASH, USD GBP, n/a n/a, EUR != CHF: 12087814<br>
line = Pidx: > 29844 30649 CASH IND, USD USD, n/a n/a, EUR != PTJ.IV: 41286944<br>line = Pidx: > 30247 30649 CASH IND, USD EUR, n/a EU, EUR != SXTE: 17803627<br>line = Pidx: > 30449 30649 CASH IND, USD JPY, n/a JP, EUR != SEL: 40288569<br>
line = Pidx: < 30449 30548 CASH CASH, USD USD, n/a n/a, EUR != HKD: 12345795<br>line = Pidx: > 30499 30548 CASH IND, USD PLN, n/a n/a, EUR != PLN: 16638678<br>line = Pidx: > 30524 30548 CASH IND, USD IEP, n/a n/a, EUR != IEP: 1247078<br>
line = Pidx: > 30537 30548 CASH IND, USD ATS, n/a n/a, EUR != ATSDEM: 3403701<br>line = Pidx: > 30543 30548 CASH CASH, USD USD, n/a n/a, EUR != CYP: 36763879<br>line = Pidx: > 30546 30548 CASH CASH, USD USD, n/a n/a, EUR != EEK: 36763845<br>
line = Pidx: < 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: > 25812 51620 CASH STK, CAD JPY, n/a JP, USD != 6155: 38980125<br>
line = Pidx: < 25812 38715 CASH BOND, CAD USD, n/a US, USD != 37042GXG6: 29203158<br>line = Pidx: < 25812 32262 CASH BOND, CAD USD, n/a GB, USD != 44181EA57: 29153511<br>line = Pidx: > 29038 32262 CASH IND, CAD USD, n/a US, USD != DWCF: 29251810<br>
line = Pidx: < 29038 30649 CASH CASH, CAD GBP, n/a n/a, USD != CHF: 12087814<br>line = Pidx: > 29844 30649 CASH IND, CAD USD, n/a n/a, USD != PTJ.IV: 41286944<br>line = Pidx: > 30247 30649 CASH IND, CAD EUR, n/a EU, USD != SXTE: 17803627<br>
line = Pidx: > 30449 30649 CASH IND, CAD JPY, n/a JP, USD != SEL: 40288569<br>line = Pidx: > 30550 30649 CASH CASH, CAD USD, n/a n/a, USD != HKD: 12345795<br>line = Pidx: > 30600 30649 CASH CASH, CAD EUR, n/a n/a, USD != TRY: 41896929<br>
line = Pidx: > 30625 30649 CASH CASH, CAD CAD, n/a n/a, USD != NZD: 46189223<br>line = Pidx: < 30625 30636 CASH CASH, CAD CHF, n/a n/a, USD == USD: 12087820<br>line = Pidx: < 30625 30629 CASH CASH, CAD CHF, n/a n/a, USD != HKD: 12345780<br>
line = Pidx: < 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: > 25812 51620 CASH STK, CHF JPY, n/a JP, USD != 6155: 38980125<br>
line = Pidx: < 25812 38715 CASH BOND, CHF USD, n/a US, USD != 37042GXG6: 29203158<br>line = Pidx: < 25812 32262 CASH BOND, CHF USD, n/a GB, USD != 44181EA57: 29153511<br>line = Pidx: > 29038 32262 CASH IND, CHF USD, n/a US, USD != DWCF: 29251810<br>
line = Pidx: < 29038 30649 CASH CASH, CHF GBP, n/a n/a, USD != CHF: 12087814<br>line = Pidx: > 29844 30649 CASH IND, CHF USD, n/a n/a, USD != PTJ.IV: 41286944<br>line = Pidx: > 30247 30649 CASH IND, CHF EUR, n/a EU, USD != SXTE: 17803627<br>
line = Pidx: > 30449 30649 CASH IND, CHF JPY, n/a JP, USD != SEL: 40288569<br>line = Pidx: > 30550 30649 CASH CASH, CHF USD, n/a n/a, USD != HKD: 12345795<br>line = Pidx: > 30600 30649 CASH CASH, CHF EUR, n/a n/a, USD != TRY: 41896929<br>
line = Pidx: > 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: > 25812 51620 CASH STK, JPY JPY, n/a JP, USD != 6155: 38980125<br>
line = Pidx: < 25812 38715 CASH BOND, JPY USD, n/a US, USD != 37042GXG6: 29203158<br>line = Pidx: < 25812 32262 CASH BOND, JPY USD, n/a GB, USD != 44181EA57: 29153511<br>line = Pidx: > 29038 32262 CASH IND, JPY USD, n/a US, USD != DWCF: 29251810<br>
line = Pidx: > 30651 32262 CASH CASH, JPY GBP, n/a n/a, USD != CHF: 12087814<br>line = Pidx: < 30651 31455 CASH BOND, JPY USD, n/a CA, USD != 41013MSN1: 29205057<br>line = Pidx: < 30651 31052 CASH BOND, JPY USD, n/a CA, USD != 41013M4B3: 29711096<br>
line = Pidx: < 30651 30850 CASH BOND, JPY USD, n/a BM, USD != 81013RAC9: 29163090<br>line = Pidx: < 30651 30749 CASH CASH, JPY MXN, n/a n/a, USD != EUR: 37890904<br>line = Pidx: > 30701 30749 CASH CASH, JPY GCU, n/a n/a, USD != ZAR: 44984212<br>
line = Pidx: > 30726 30749 CASH CASH, JPY JPY, n/a n/a, USD != EUR: 14321016<br>line = Pidx: < 30726 30736 CASH CASH, JPY KRW, n/a n/a, USD != EUR: 36750725<br>line = Pidx: > 30732 30736 CASH CASH, JPY JPY, n/a n/a, USD != NZD: 39453444<br>
line = Pidx: < 30732 30733 CASH CASH, JPY KRW, n/a n/a, USD != AUD: 36750719<br>line = Pidx: > 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: > 25812 51620 CASH STK, SEK JPY, n/a JP, USD != 6155: 38980125<br>line = Pidx: < 25812 38715 CASH BOND, SEK USD, n/a US, USD != 37042GXG6: 29203158<br>line = Pidx: < 25812 32262 CASH BOND, SEK USD, n/a GB, USD != 44181EA57: 29153511<br>
line = Pidx: > 29038 32262 CASH IND, SEK USD, n/a US, USD != DWCF: 29251810<br>line = Pidx: > 30651 32262 CASH CASH, SEK GBP, n/a n/a, USD != CHF: 12087814<br>line = Pidx: < 30651 31455 CASH BOND, SEK USD, n/a CA, USD != 41013MSN1: 29205057<br>
line = Pidx: < 30651 31052 CASH BOND, SEK USD, n/a CA, USD != 41013M4B3: 29711096<br>line = Pidx: < 30651 30850 CASH BOND, SEK USD, n/a BM, USD != 81013RAC9: 29163090<br>line = Pidx: > 30751 30850 CASH CASH, SEK MXN, n/a n/a, USD != EUR: 37890904<br>
line = Pidx: < 30751 30799 CASH BOND, SEK USD, n/a AU, USD != 202712AE5: 29223126<br>line = Pidx: > 30776 30799 CASH CASH, SEK SEK, n/a n/a, USD != NOK: 28027113<br>line = Pidx: < 30776 30786 CASH CASH, SEK TWD, n/a n/a, USD == USD: 37928794<br>
line = Pidx: < 30776 30780 CASH CASH, SEK SKK, n/a n/a, USD == USD: 34831491<br>line = Pidx: < 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: > 25812 51620 CASH STK, USD JPY, n/a JP, EUR != 6155: 38980125<br>
line = Pidx: < 25812 38715 CASH BOND, USD USD, n/a US, EUR != 37042GXG6: 29203158<br>line = Pidx: < 25812 32262 CASH BOND, USD USD, n/a GB, EUR != 44181EA57: 29153511<br>line = Pidx: > 29038 32262 CASH IND, USD USD, n/a US, EUR != DWCF: 29251810<br>
line = Pidx: < 29038 30649 CASH CASH, USD GBP, n/a n/a, EUR != CHF: 12087814<br>line = Pidx: > 29844 30649 CASH IND, USD USD, n/a n/a, EUR != PTJ.IV: 41286944<br>line = Pidx: > 30247 30649 CASH IND, USD EUR, n/a EU, EUR != SXTE: 17803627<br>
line = Pidx: > 30449 30649 CASH IND, USD JPY, n/a JP, EUR != SEL: 40288569<br>line = Pidx: < 30449 30548 CASH CASH, USD USD, n/a n/a, EUR != HKD: 12345795<br>line = Pidx: > 30499 30548 CASH IND, USD PLN, n/a n/a, EUR != PLN: 16638678<br>
line = Pidx: > 30524 30548 CASH IND, USD IEP, n/a n/a, EUR != IEP: 1247078<br>line = Pidx: > 30537 30548 CASH IND, USD ATS, n/a n/a, EUR != ATSDEM: 3403701<br>line = Pidx: > 30543 30548 CASH CASH, USD USD, n/a n/a, EUR != CYP: 36763879<br>
line = Pidx: > 30546 30548 CASH CASH, USD USD, n/a n/a, EUR != EEK: 36763845<br>line = Pidx: < 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: > 25812 51620 CASH STK, CAD JPY, n/a JP, USD != 6155: 38980125<br>line = Pidx: < 25812 38715 CASH BOND, CAD USD, n/a US, USD != 37042GXG6: 29203158<br>line = Pidx: < 25812 32262 CASH BOND, CAD USD, n/a GB, USD != 44181EA57: 29153511<br>
line = Pidx: > 29038 32262 CASH IND, CAD USD, n/a US, USD != DWCF: 29251810<br>line = Pidx: < 29038 30649 CASH CASH, CAD GBP, n/a n/a, USD != CHF: 12087814<br>line = Pidx: > 29844 30649 CASH IND, CAD USD, n/a n/a, USD != PTJ.IV: 41286944<br>
line = Pidx: > 30247 30649 CASH IND, CAD EUR, n/a EU, USD != SXTE: 17803627<br>line = Pidx: > 30449 30649 CASH IND, CAD JPY, n/a JP, USD != SEL: 40288569<br>line = Pidx: > 30550 30649 CASH CASH, CAD USD, n/a n/a, USD != HKD: 12345795<br>
line = Pidx: > 30600 30649 CASH CASH, CAD EUR, n/a n/a, USD != TRY: 41896929<br>line = Pidx: > 30625 30649 CASH CASH, CAD CAD, n/a n/a, USD != NZD: 46189223<br>line = Pidx: < 30625 30636 CASH CASH, CAD CHF, n/a n/a, USD == USD: 12087820<br>
line = Pidx: < 30625 30629 CASH CASH, CAD CHF, n/a n/a, USD != HKD: 12345780<br>line = Pidx: < 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: > 25812 51620 CASH STK, CHF JPY, n/a JP, USD != 6155: 38980125<br>line = Pidx: < 25812 38715 CASH BOND, CHF USD, n/a US, USD != 37042GXG6: 29203158<br>line = Pidx: < 25812 32262 CASH BOND, CHF USD, n/a GB, USD != 44181EA57: 29153511<br>
line = Pidx: > 29038 32262 CASH IND, CHF USD, n/a US, USD != DWCF: 29251810<br>line = Pidx: < 29038 30649 CASH CASH, CHF GBP, n/a n/a, USD != CHF: 12087814<br>line = Pidx: > 29844 30649 CASH IND, CHF USD, n/a n/a, USD != PTJ.IV: 41286944<br>
line = Pidx: > 30247 30649 CASH IND, CHF EUR, n/a EU, USD != SXTE: 17803627<br>line = Pidx: > 30449 30649 CASH IND, CHF JPY, n/a JP, USD != SEL: 40288569<br>line = Pidx: > 30550 30649 CASH CASH, CHF USD, n/a n/a, USD != HKD: 12345795<br>
line = Pidx: > 30600 30649 CASH CASH, CHF EUR, n/a n/a, USD != TRY: 41896929<br>line = Pidx: > 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: > 25812 51620 CASH STK, JPY JPY, n/a JP, USD != 6155: 38980125<br>line = Pidx: < 25812 38715 CASH BOND, JPY USD, n/a US, USD != 37042GXG6: 29203158<br>line = Pidx: < 25812 32262 CASH BOND, JPY USD, n/a GB, USD != 44181EA57: 29153511<br>
line = Pidx: > 29038 32262 CASH IND, JPY USD, n/a US, USD != DWCF: 29251810<br>line = Pidx: > 30651 32262 CASH CASH, JPY GBP, n/a n/a, USD != CHF: 12087814<br>line = Pidx: < 30651 31455 CASH BOND, JPY USD, n/a CA, USD != 41013MSN1: 29205057<br>
line = Pidx: < 30651 31052 CASH BOND, JPY USD, n/a CA, USD != 41013M4B3: 29711096<br>line = Pidx: < 30651 30850 CASH BOND, JPY USD, n/a BM, USD != 81013RAC9: 29163090<br>line = Pidx: < 30651 30749 CASH CASH, JPY MXN, n/a n/a, USD != EUR: 37890904<br>
line = Pidx: > 30701 30749 CASH CASH, JPY GCU, n/a n/a, USD != ZAR: 44984212<br>line = Pidx: > 30726 30749 CASH CASH, JPY JPY, n/a n/a, USD != EUR: 14321016<br>line = Pidx: < 30726 30736 CASH CASH, JPY KRW, n/a n/a, USD != EUR: 36750725<br>
line = Pidx: > 30732 30736 CASH CASH, JPY JPY, n/a n/a, USD != NZD: 39453444<br>line = Pidx: < 30732 30733 CASH CASH, JPY KRW, n/a n/a, USD != AUD: 36750719<br>line = Pidx: > 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: > 25812 51620 CASH STK, SEK JPY, n/a JP, USD != 6155: 38980125<br>line = Pidx: < 25812 38715 CASH BOND, SEK USD, n/a US, USD != 37042GXG6: 29203158<br>
line = Pidx: < 25812 32262 CASH BOND, SEK USD, n/a GB, USD != 44181EA57: 29153511<br>line = Pidx: > 29038 32262 CASH IND, SEK USD, n/a US, USD != DWCF: 29251810<br>line = Pidx: > 30651 32262 CASH CASH, SEK GBP, n/a n/a, USD != CHF: 12087814<br>
line = Pidx: < 30651 31455 CASH BOND, SEK USD, n/a CA, USD != 41013MSN1: 29205057<br>line = Pidx: < 30651 31052 CASH BOND, SEK USD, n/a CA, USD != 41013M4B3: 29711096<br>line = Pidx: < 30651 30850 CASH BOND, SEK USD, n/a BM, USD != 81013RAC9: 29163090<br>
line = Pidx: > 30751 30850 CASH CASH, SEK MXN, n/a n/a, USD != EUR: 37890904<br>line = Pidx: < 30751 30799 CASH BOND, SEK USD, n/a AU, USD != 202712AE5: 29223126<br>line = Pidx: > 30776 30799 CASH CASH, SEK SEK, n/a n/a, USD != NOK: 28027113<br>
line = Pidx: < 30776 30786 CASH CASH, SEK TWD, n/a n/a, USD == USD: 37928794<br>line = Pidx: < 30776 30780 CASH CASH, SEK SKK, n/a n/a, USD == USD: 34831491<br>line = Pidx: < 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__ == '__main__':<br> shimProcess = subprocess.Popen('/usr/local/shim/shim --risk cout file save', 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) > 0) and not orderSubmitted:<br> shimProcess.stdin.write("select tick CASH:IDEALPRO:EUR:USD 1;\n")<br>
shimProcess.stdin.flush()<br> orderSubmitted = True<br> print "line = %s" % 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"><<a href="mailto:boadie@gmail.com">boadie@gmail.com</a>></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: < 30449 30649 CASH CASH, USD USD, n/a n/a, AUD != HKD: 12345795<br>
Pidx: < 30449 30649 CASH CASH, USD USD, n/a n/a, AUD != HKD: 12345795<br>
Pidx: < 30449 30649 CASH CASH, USD USD, n/a n/a, AUD != HKD: 12345795<br>
Pidx: < 30449 30649 CASH CASH, USD USD, n/a n/a, AUD != HKD: 12345795<br>
Pidx: < 30449 30649 CASH CASH, USD USD, n/a n/a, AUD != HKD: 12345795<br>
Pidx: < 30449 30649 CASH CASH, USD USD, n/a n/a, AUD != HKD: 12345795<br>
Pidx: < 30449 30649 CASH CASH, USD USD, n/a n/a, AUD != HKD: 12345795<br>
Pidx: < 30449 30649 CASH CASH, USD USD, n/a n/a, AUD != HKD: 12345795<br>
Pidx: < 30449 30649 CASH CASH, USD USD, n/a n/a, AUD != HKD: 12345795<br>
Pidx: < 30449 30649 CASH CASH, USD USD, n/a n/a, AUD != HKD: 12345795<br>
Pidx: < 30449 30649 CASH CASH, USD USD, n/a n/a, AUD != HKD: 12345795<br>
Pidx: < 30449 30649 CASH CASH, USD USD, n/a n/a, AUD != HKD: 12345795<br>
Pidx: < 30449 30649 CASH CASH, USD USD, n/a n/a, AUD != HKD: 12345795<br>
Pidx: < 30449 30649 CASH CASH, USD USD, n/a n/a, AUD != HKD: 12345795<br>
Pidx: < 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 <<a href="mailto:pippin@owlriver.net">pippin@owlriver.net</a>> wrote:<br>
>> Ric,<br>
><br>
> Here I need to reply to my previous post, as the fix I posted was<br>
> flawed in two ways: the fix is still incorrect for some cases; and<br>
> there are related problems elsewhere in the code.<br>
><br>
> Below is a comprehensive patch, to be applied to the original code, so<br>
> that you need to start *without* having applied my previous patch for<br>
> leaf.c; if you have, you'll need to either back it out, or start from<br>
> another copy of the sources you've derived from the shim-090428.tgz<br>
> tarball.<br>
><br>
> The patch follows my sig. If any one is interested in the details of<br>
> the implementation, please feel free to ask on the list, and I'll<br>
> post an explanation of the patch.<br>
><br>
> In any case, Ric, please consider applying the patch below to your<br>
> code as noted above, or else wait for the next release, and once having<br>
> done one or the other, please let us know whether your installation of<br>
> the shim works.<br>
><br>
> Thanks,<br>
><br>
> Bill<br>
><br>
> -------- cut here ------------------------------------------------------<br>
><br>
> *** old/leaf.c Thu May 7 19:34:16 2009<br>
> --- src/leaf.c Thu May 21 18:51:01 2009<br>
> ***************<br>
> *** 167,174 ****<br>
> Product_1 t(vecs.product);<br>
> Prod_0 p(0);<br>
> int x(0);<br>
> ! nat a(t.base()),<br>
> ! b(t.next());<br>
><br>
> // fprintf(stderr, "Desc: %13s %-4s %4s %4s %3s %4s\n", "",<br>
> // d.type .text(),<br>
> --- 167,174 ----<br>
> Product_1 t(vecs.product);<br>
> Prod_0 p(0);<br>
> int x(0);<br>
> ! nat a(t.base() + 1),<br>
> ! b(t.size());<br>
><br>
> // fprintf(stderr, "Desc: %13s %-4s %4s %4s %3s %4s\n", "",<br>
> // d.type .text(),<br>
> ***************<br>
> *** 177,189 ****<br>
> // d.unit .text(),<br>
> // d.region.text());<br>
><br>
> ! for(nat i(mid(a, b)); a<b && !p; i = mid(a, b)) {<br>
> ! switch((x = d.compare(t[i]))) {<br>
> ! case -1: b = i ; break;<br>
> case 1: a = i + 1; break;<br>
> ! case 0: p = &t[i];<br>
> }<br>
> ! // d.print_line(t[i], a, b, x);<br>
> }<br>
> // fprintf(stderr, "Desc? %u\n", bool(p));<br>
><br>
> --- 177,189 ----<br>
> // d.unit .text(),<br>
> // d.region.text());<br>
><br>
> ! for(nat i(mid(a, b)); a<=i && i<=b && !p; i = mid(a, b)) {<br>
> ! switch((x = d.compare(t[i - 1]))) {<br>
> ! case -1: b = i - 1; break;<br>
> case 1: a = i + 1; break;<br>
> ! case 0: p = &t[i - 1];<br>
> }<br>
> ! // d.print_line(t[i - 1], a, b, x);<br>
> }<br>
> // fprintf(stderr, "Desc? %u\n", bool(p));<br>
><br>
> *** old/table.h Wed Mar 11 10:42:42 2009<br>
> --- lib/table.h Thu May 21 18:03:45 2009<br>
> ***************<br>
> *** 167,179 ****<br>
> T_0 operator[](char_0 k) const { return self[ids[k].id()]; }<br>
> T_0 operator[](nat key) const<br>
> {<br>
> ! nat a(h.base()),<br>
> b(h.past()), i(Sentinel);<br>
><br>
> ! for(nat m(mid(a, b)); a<b && sentinel(i); m = mid(a, b)) {<br>
> ! if (key < *data[m]()) b = m ; else<br>
> ! if (key > *data[m]()) a = m + 1; else i = m;<br>
> ! }<br>
><br>
> return sentinel(i) ? 0 : &data[i]();<br>
> }<br>
> --- 167,179 ----<br>
> T_0 operator[](char_0 k) const { return self[ids[k].id()]; }<br>
> T_0 operator[](nat key) const<br>
> {<br>
> ! nat a(h.base() + 1),<br>
> b(h.past()), i(Sentinel);<br>
><br>
> ! for(nat m(mid(a, b)); a<=m && m<=b && sentinel(i); m=mid(a, b))<br>
> ! if (key < *data[m - 1]()) b = m - 1; else<br>
> ! if (key > *data[m - 1]()) a = m + 1; else<br>
> ! i = m - 1;<br>
><br>
> return sentinel(i) ? 0 : &data[i]();<br>
> }<br>
> *** old/search.h Wed Mar 11 10:42:42 2009<br>
> --- lib/search.h Thu May 21 19:09:49 2009<br>
> ***************<br>
> *** 42,62 ****<br>
> size(n),<br>
> key(**k) {}<br>
><br>
> ! R_0 operator*() const<br>
> ! {<br>
> ! R_0 p(0);<br>
> ! nat a(0), b(size);<br>
> !<br>
> ! for(nat i(mid_point(a, b)); a<b && !p; i = mid_point(a, b))<br>
> ! if (<a href="http://key.id" target="_blank">key.id</a>() < (***data[i]).id()) b = i ; else<br>
> ! if (<a href="http://key.id" target="_blank">key.id</a>() > (***data[i]).id()) a = i + 1; else p = data[i];<br>
> !<br>
> ! return p;<br>
> ! }<br>
><br>
> private:<br>
><br>
> ! nat mid_point(nat a, nat b) const { return (a + b) >> 1; }<br>
><br>
> R_00 data;<br>
> nat size;<br>
> --- 42,63 ----<br>
> size(n),<br>
> key(**k) {}<br>
><br>
> ! R_0 operator*() const<br>
> ! {<br>
> ! R_0 p(0);<br>
> ! nat a(1), b(size); /* half open interval, offset by 1 from common case */<br>
> !<br>
> ! if (size)<br>
> ! for(nat i(mid(a, b)); a<=i && i<=b && !p; i = mid(a, b))<br>
> ! if (<a href="http://key.id" target="_blank">key.id</a>() < (***data[i-1]).id()) b = i - 1; else<br>
> ! if (<a href="http://key.id" target="_blank">key.id</a>() > (***data[i-1]).id()) a = i + 1; else<br>
> ! p = data[i-1];<br>
> ! return p;<br>
> ! }<br>
><br>
> private:<br>
><br>
> ! nat mid(nat a, nat b) const { return (a + b) >> 1; }<br>
><br>
> R_00 data;<br>
> nat size;<br>
><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>