diff --git a/src/racket/src/future.c b/src/racket/src/future.c index 58babfef63..93f8b97367 100644 --- a/src/racket/src/future.c +++ b/src/racket/src/future.c @@ -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; diff --git a/src/racket/src/type.c b/src/racket/src/type.c index dd06b96d5d..0ed1de3248 100644 --- a/src/racket/src/type.c +++ b/src/racket/src/type.c @@ -295,6 +295,7 @@ scheme_init_type () set_name(scheme_log_reader_type, ""); set_name(scheme_future_type, ""); + set_name(scheme_fsemaphore_type, ""); set_name(_scheme_values_types_, ""); set_name(_scheme_compiled_values_types_, "");