Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)
ractor.h
Go to the documentation of this file.
1#ifndef RUBY_RACTOR_H
2#define RUBY_RACTOR_H 1
3
16 void (*mark)(void *ptr);
17 void (*free)(void *ptr);
18 // TODO: update
19};
20
22
23RUBY_SYMBOL_EXPORT_BEGIN
25
32
37
39#define RB_RACTOR_LOCAL_STORAGE_TYPE_FREE (&rb_ractor_local_storage_type_free)
40
44
47
48RUBY_SYMBOL_EXPORT_END
49
50#define RB_OBJ_SHAREABLE_P(obj) FL_TEST_RAW((obj), RUBY_FL_SHAREABLE)
51
52static inline bool
53rb_ractor_shareable_p(VALUE obj)
54{
56
57 if (SPECIAL_CONST_P(obj)) {
58 return true;
59 }
60 else if (RB_OBJ_SHAREABLE_P(obj)) {
61 return true;
62 }
63 else {
65 }
66}
67
68#endif /* RUBY_RACTOR_H */
struct RIMemo * ptr
Definition: debug.c:88
#define RUBY_EXTERN
Definition: dllexport.h:36
bool rb_ractor_shareable_p_continue(VALUE obj)
Definition: ractor.c:2550
const struct rb_ractor_local_storage_type rb_ractor_local_storage_type_free
Definition: ractor.c:3086
VALUE rb_ractor_make_shareable_copy(VALUE obj)
Definition: ractor.c:2508
struct rb_ractor_local_key_struct * rb_ractor_local_key_t
Definition: ractor.h:21
void * rb_ractor_local_storage_ptr(rb_ractor_local_key_t key)
Definition: ractor.c:3195
void rb_ractor_stdout_set(VALUE)
Definition: ractor.c:2172
void rb_ractor_stdin_set(VALUE)
Definition: ractor.c:2160
void rb_ractor_local_storage_ptr_set(rb_ractor_local_key_t key, void *ptr)
Definition: ractor.c:3207
rb_ractor_local_key_t rb_ractor_local_storage_ptr_newkey(const struct rb_ractor_local_storage_type *type)
Definition: ractor.c:3097
VALUE rb_ractor_stderr(void)
Definition: ractor.c:2148
VALUE rb_cRactor
Definition: ractor.c:20
VALUE rb_ractor_stdin(void)
Definition: ractor.c:2124
void rb_ractor_local_storage_value_set(rb_ractor_local_key_t key, VALUE val)
Definition: ractor.c:3189
bool rb_ractor_local_storage_value_lookup(rb_ractor_local_key_t key, VALUE *val)
Definition: ractor.c:3178
VALUE rb_ractor_stdout(void)
Definition: ractor.c:2136
#define RB_OBJ_SHAREABLE_P(obj)
Definition: ractor.h:50
void rb_ractor_stderr_set(VALUE)
Definition: ractor.c:2184
VALUE rb_ractor_make_shareable(VALUE obj)
Definition: ractor.c:2499
rb_ractor_local_key_t rb_ractor_local_storage_value_newkey(void)
Definition: ractor.c:3106
VALUE rb_ractor_local_storage_value(rb_ractor_local_key_t key)
Definition: ractor.c:3166
#define SPECIAL_CONST_P
void(* free)(void *ptr)
Definition: ractor.h:17
void(* mark)(void *ptr)
Definition: ractor.h:16
unsigned long VALUE
Definition: value.h:38