Hi Paolo,

this is is with the stable 3.2. Yesterday I noticed that DatagramSocket
will use some form of polling inside the >>#next selector. This is not
true for other sockets/filedescriptors and a bit annoying when closing
down a socket. My current workaround is to use the ensureReadable (which
will use async polling fileop) and then use next. The second part is
that >>#next and >>#ensureReadable do not generate a EoF in case the
socket is closed.

The bigger problem is with restoring an image where an async fileop is
made. There are two issues and I wonder about the best way to fix them.
The semaphoreOOP of the fileOp/polling queue will never be singalled, the
process sleeping in >>#ensureReadable will stay in this mode forever, the
usage count on the OOP will be wrong (no calls to _gst_unregister_oop).

I wonder how to fix the later issue. I think it should happen somehow
in the fixup_object method of save.c. E.g. in pseudo code

fixup: semaphoreOOp
 polling_queue includes: semaphoreOOp
        ifTrue: [
                OBJECT(semaphoreOOP) signal.
                unregisterOOP: semaphoreOOP.]

I am not sure if the process will automatically run after the above
manipulation.

what do you think?

_______________________________________________
help-smalltalk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to