[Win32utils-devel] [ win32utils-Patches-16627 ] Replace inefficient busy wait loop with UDP/IP loopback socket.
noreply at rubyforge.org
noreply at rubyforge.org
Wed Dec 26 21:13:07 EST 2007
Patches item #16627, was opened at 2007-12-26 21:13
You can respond by visiting:
http://rubyforge.org/tracker/?func=detail&atid=413&aid=16627&group_id=85
Category: win32-service
Group: Code Cleanup
Status: Open
Resolution: None
Priority: 3
Submitted By: Nobody (None)
Assigned to: Nobody (None)
Summary: Replace inefficient busy wait loop with UDP/IP loopback socket.
Initial Comment:
Here are some patches for win32-service which eliminate the messy busy loop that polls the hStopEvent with a zero timeout. Instead of using a Windows event, these patches create a UDP/IP socket bound to the loopback interface which can be used in ruby's green threads event loop. I believe this is a much cleaner and more efficient mechanism than the WIndows event flag since it allows the ruby thread to block until there's really a control event from the WIndows service manager.
I also include a hCtrlEvent event flag which can be used by ruby win32 services which must wait for control events. This event handle is accessible via the daemon.event_handle method. Note that the hCtrlEvent is not used by the daemon.c logic, it's merely an event which can be used by the Daemon subclass.
----------------------------------------------------------------------
You can respond by visiting:
http://rubyforge.org/tracker/?func=detail&atid=413&aid=16627&group_id=85
More information about the win32utils-devel
mailing list