I'm trying to characterize some differences in behavior for GemTools between 
Squeak and the 1.0beta for Pharo. I'm not reporting a bug as much as trying to 
understand what I need to do differently in Pharo.

In GemTools, I have a special workspace (GemTools Launcher), that causes doits 
to be evaluated in a GemStone server. This is done by using FFI to make calls 
to the GemStone GCI library.

The string is passed to GemStone via a nonblocking C call. On the Pharo 
(client) side, we poll for a result. While an expression is evaluating, 
exceptions may be raised on the server-side and on the client, we convert the 
gemstone exception into a Pharo exception and signal it, if/when the exception 
is resumed, we pass a result back to the server and continue waiting for the 
result of the original expression.

There are two thing that might happen when a exception is raised in this 
manner. If the exception is an error, we bring up a debugger window on the 
client and arrange to debug the process on the server (again using the GCI). If 
the exception is what we call a Client Forwarder exception, then we arrange to 
send a message to the client object and pass the result back to the server 
side. Using a client forwarder, the server can send messages to the client 
Transcript with logging/progress messages.

In earlier versions of Pharo and in the current version of Squeak, when we sent 
messages to the Transcript, the messages would show up immediately ... making 
it easy to watch progress of long running operations.

In the 1.0 beta Pharo, this behavior has changed. It appears that the 
Transcript window is not updated until the polling process finishes, which 
makes the progress messages a little bit less than useful. 

I assume that I need to add a message to my polling loop to allow for display 
updates...I'm doing a Delay wait in the loop so the process is not in a tight 
loop. 

I am not running the poll in the background, because I want the UI process to 
be blocked ... this same mechanism is used for menu items, etc. so blocking is 
important.

Thanks for the help,

Dale

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to