MCPcopy Create free account
hub / github.com/bytecodealliance/wit-bindgen / generate_threading_helpers

Method generate_threading_helpers

crates/c/src/lib.rs:726–849  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

724 }
725
726 fn generate_threading_helpers(&mut self) {
727 let snake = self.world.to_snake_case();
728 uwriteln!(
729 self.src.h_async,
730 "
731void* {snake}_context_get_1(void);
732void {snake}_context_set_1(void* value);
733uint32_t {snake}_thread_yield_cancellable(void);
734uint32_t {snake}_thread_index(void);
735uint32_t {snake}_thread_new_indirect(void (*start_function)(void*), void* arg);
736void {snake}_thread_suspend_to(uint32_t thread);
737uint32_t {snake}_thread_suspend_to_cancellable(uint32_t thread);
738void {snake}_thread_suspend_to_suspended(uint32_t thread);
739uint32_t {snake}_thread_suspend_to_suspended_cancellable(uint32_t thread);
740void {snake}_thread_unsuspend(uint32_t thread);
741void {snake}_thread_yield_to_suspended(uint32_t thread);
742uint32_t {snake}_thread_yield_to_suspended_cancellable(uint32_t thread);
743void {snake}_thread_suspend(void);
744uint32_t {snake}_thread_suspend_cancellable(void);
745 "
746 );
747 uwriteln!(
748 self.src.c_async,
749 r#"
750__attribute__((__import_module__("$root"), __import_name__("[context-get-1]")))
751extern void* __context_get_1(void);
752
753void* {snake}_context_get_1(void) {{
754 return __context_get_1();
755}}
756
757__attribute__((__import_module__("$root"), __import_name__("[context-set-1]")))
758extern void __context_set_1(void*);
759
760void {snake}_context_set_1(void* value) {{
761 __context_set_1(value);
762}}
763
764__attribute__((__import_module__("$root"), __import_name__("[cancellable][thread-yield]")))
765extern uint32_t __thread_yield_cancellable(void);
766
767uint32_t {snake}_thread_yield_cancellable(void) {{
768 return __thread_yield_cancellable();
769}}
770
771__attribute__((__import_module__("$root"), __import_name__("[thread-index]")))
772extern uint32_t __thread_index(void);
773
774uint32_t {snake}_thread_index(void) {{
775 return __thread_index();
776}}
777
778__attribute__((__import_module__("$root"), __import_name__("[thread-new-indirect-v0]")))
779extern uint32_t __thread_new_indirect(uint32_t, void*);
780
781uint32_t {snake}_thread_new_indirect(void (*start_function)(void*), void* arg) {{
782 return __thread_new_indirect((uint32_t)(uintptr_t)start_function, arg
783);

Callers 1

finishMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected