[MEP] Prohibit Blocking Calls by Emulator
Fred Eisele
phreed at gmail.com
Sat Jul 30 01:19:14 CEST 2005
MEP: #
Title: Prohibit/Prevent Blocking Calls by Emulator Process
Version: $Revision: 0.0 $
Last-Modified: $Date: 2005/07/29$
Author: Fred Eisele <phreed at gmail.org>
Status: Proposed
Type: bug-fix, policy-change
Created: 2005-07-29
Post-History:
Proposal:
Accept the following policy/rule...
While it is perfectly acceptable for a thread to block, no (oz) function
call will be allowed that causes the emulator process to block.
Example:
A case where this rule was not being followed is illustrated by bug# 1438.
I am working on a better test case sample where...
Two threads are started, a client and a server.
The server thread provides a happy message ('hello') to a client thread.
The client thread is started first and allowed to block
before attempting to start the server.
It is necessary to introduce a small delay before starting the server
as there is a possibility that the server process may win the race.
Discussion:
Are there other situations where the emulator could block
that would need to be corrected should this policy change be approved?
This would imply that certain functions be deprecated or replaced
e.g. OS.accept by OS.acceptSelect,
OS.connectNonblocking and OS.connect (both have issues see bug#1438
etc.
References:
http://www.mozart-oz.org/pipermail/mozart-hackers/2003/001242.html
Local Variables:
mode: indented-text
indent-tabs-mode: nil
sentence-end-double-space: t
fill-column: 70
End:
More information about the mozart-hackers
mailing list