rquickjs-sys 0.5.1

QuickJS bindings for rquickjs
Documentation
diff --git a/quickjs.c b/quickjs.c
index ccf0916..5098719 100644
--- a/quickjs.c
+++ b/quickjs.c
@@ -3371,12 +3371,18 @@ static inline BOOL JS_IsEmptyString(JSValueConst v)
 JSClassID JS_NewClassID(JSClassID *pclass_id)
 {
     JSClassID class_id;
-    /* XXX: make it thread safe */
+#ifdef CONFIG_ATOMICS
+    static atomic_flag lock = ATOMIC_FLAG_INIT;
+    while(atomic_flag_test_and_set_explicit(&lock, memory_order_acquire));
+#endif
     class_id = *pclass_id;
     if (class_id == 0) {
         class_id = js_class_id_alloc++;
         *pclass_id = class_id;
     }
+#ifdef CONFIG_ATOMICS
+    atomic_flag_clear_explicit(&lock, memory_order_release);
+#endif
     return class_id;
 }