[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