make `make-fsemaphore' atomic (i.e., not blocking)
This commit is contained in:
parent
33db9589a4
commit
15812a94d8
|
@ -3021,8 +3021,9 @@ Scheme_Object *scheme_rtcall_make_fsemaphore(Scheme_Object *ready)
|
|||
future->source_of_request = "[make_fsemaphore]";
|
||||
future->source_type = FSRC_OTHER;
|
||||
|
||||
/* conservative check for when creation can succeed atomically: */
|
||||
if (SCHEME_INT_VAL(ready)
|
||||
/* conservative check for when creation can succeed atomically
|
||||
(because it won't raise an error): */
|
||||
if (SCHEME_INTP(ready)
|
||||
&& (SCHEME_INT_VAL(ready) >= 0)
|
||||
&& (SCHEME_INT_VAL(ready) < 1024))
|
||||
is_atomic = 1;
|
||||
|
|
|
@ -295,6 +295,7 @@ scheme_init_type ()
|
|||
set_name(scheme_log_reader_type, "<log-receiver>");
|
||||
|
||||
set_name(scheme_future_type, "<future>");
|
||||
set_name(scheme_fsemaphore_type, "<fsemaphore>");
|
||||
|
||||
set_name(_scheme_values_types_, "<resurrected>");
|
||||
set_name(_scheme_compiled_values_types_, "<internal>");
|
||||
|
|
Loading…
Reference in New Issue
Block a user