World: r3wp
[!REBOL3 Schemes] Implementors guide
older newer | first last |
Graham 11-Jan-2010 [1104] | 7zip opens it up .. |
Andreas 11-Jan-2010 [1105] | great |
Graham 11-Jan-2010 [1106] | Uploaded my latest version which by default downloads ubi.exe which is a 1.5mb file ( ubuntu windows installer. ) You can uncomment the 650 mb download if you want to try :) |
Andreas 11-Jan-2010 [1107] | we really ned to get rid of those WAITs :) |
Graham 11-Jan-2010 [1108] | I haven't done it yet, but if one gets an error code, it should probably throw an error. |
Andreas 11-Jan-2010 [1109] | or maybe the server is so slow :) |
Graham 11-Jan-2010 [1110] | the debian server was really slow ... I had to wait 7 seconds for it to respond |
Andreas 11-Jan-2010 [1111] | i guess i'll try a local ubuntu mirror |
Graham 11-Jan-2010 [1112x2] | but using a timeout for some reason means that it defaults to the timeout value ? |
so every command uses the timeout .. so don't understand that | |
Andreas 11-Jan-2010 [1114] | you wait [port timeout] ? |
Graham 11-Jan-2010 [1115] | yes |
Andreas 11-Jan-2010 [1116] | strange |
Graham 11-Jan-2010 [1117] | well try it and you may see it ... |
Andreas 11-Jan-2010 [1118x4] | i have a huge wait after SYST |
ah, i guess i should try with the win32 r3 instead | |
ok, still. long wait after SYST | |
then after 227 PASV | |
Graham 11-Jan-2010 [1122] | yes ... shouldn't happen |
Andreas 11-Jan-2010 [1123] | ah, i think the culprit is that you WAIT inside the awake handler |
Graham 11-Jan-2010 [1124] | I guess that's a no no ... |
eFishAnt 11-Jan-2010 [1125] | wow, you guys are rockin! Thanks Steeve, for the dns2. Funny, that's how my wife says my name when she wants something..."Oh Steeeeve." |
Andreas 11-Jan-2010 [1126] | someone said so, yes :) |
Graham 11-Jan-2010 [1127] | so fish .. where's your codec ?? |
Andreas 11-Jan-2010 [1128] | but changing the WAIT inside the awake to a READ doesn't change things :) |
Graham 11-Jan-2010 [1129] | a system read? |
Andreas 11-Jan-2010 [1130] | unless you do something special, there's only system reads for tcp ports |
Graham 11-Jan-2010 [1131] | no binding for me |
Andreas 11-Jan-2010 [1132x2] | even for the scheme port, there's only system read |
but the system then dispatches this to the read actor | |
Graham 11-Jan-2010 [1134] | and my read actor does a wait |
Andreas 11-Jan-2010 [1135x2] | yeah, but inside wait-cmdport you're WAITing on the cmdport |
inside write-cmdport* | |
Graham 11-Jan-2010 [1137] | fix it please :) |
Andreas 11-Jan-2010 [1138x4] | change line 212 from `wait cmdport` to `read cmdport` |
doesn't fix the long lags, though | |
in fact, you can drop this line completely, i think | |
because a WRITE on the tcp port from within the tcp port's awake handler automatically re-schedules the tcp port for event handling | |
Graham 11-Jan-2010 [1142] | ok, working with line removed .. but still delays |
Andreas 11-Jan-2010 [1143x11] | mhm |
only chasing thru your code, atm :) | |
ok, the flow should be, imho: - read WAITs on the cmdport - if the cmdport needs to open a dataport, cmdport WAITS on dataport | |
port/state/connection is your cmdport, if i'm not mistaken | |
so i started by changing the read actor to: read: func [port [port!]] [ wait port/state/connection ] which should break things hard :) | |
and yes it does, hangs after SYST | |
next step: tracing if your awake handler returns true in this case | |
wuah, huge switch :) | |
but, as expected, it does not :) | |
client/spec/ready seems to be a good flag to use as return value for the awake handler | |
unfortunatly, in the AUTH 230 handler, you set both ready to true _and_ issue another write | |
older newer | first last |