Feature #20750 » 11618.patch
error.c | ||
---|---|---|
#include "internal/process.h"
|
||
#include "internal/string.h"
|
||
#include "internal/symbol.h"
|
||
#include "internal/thread.h"
|
||
#include "internal/variable.h"
|
||
#include "ruby/encoding.h"
|
||
#include "ruby/st.h"
|
||
#include "ruby/thread.h"
|
||
#include "ruby/util.h"
|
||
#include "ruby_assert.h"
|
||
#include "vm_core.h"
|
ext/fiddle/closure.c | ||
---|---|---|
#include <stdbool.h>
|
||
#include <ruby/thread.h>
|
||
int ruby_thread_has_gvl_p(void); /* from internal.h */
|
||
VALUE cFiddleClosure;
|
||
typedef struct {
|
gc/default.c | ||
---|---|---|
return (void *)(VALUE)garbage_collect(oar->objspace, oar->reason);
|
||
}
|
||
int ruby_thread_has_gvl_p(void);
|
||
static int
|
||
garbage_collect_with_gvl(rb_objspace_t *objspace, unsigned int reason)
|
||
{
|
include/ruby/thread.h | ||
---|---|---|
RBIMPL_SYMBOL_EXPORT_BEGIN()
|
||
/**
|
||
* Check if current native thread has GVL.
|
||
* @return 1 if the current thread has acquired the GVL.
|
||
*
|
||
* Usage:
|
||
* if (ruby_thread_has_gvl_p()) {
|
||
* method_call(&context);
|
||
* }
|
||
* else {
|
||
* rb_thread_call_with_gvl(method_call, &context);
|
||
* }
|
||
*/
|
||
int ruby_thread_has_gvl_p(void);
|
||
RBIMPL_ATTR_NONNULL((1))
|
||
/**
|
||
* (Re-)acquires the GVL. This manoeuvre makes it possible for an out-of-GVL
|
internal/thread.h | ||
---|---|---|
VALUE rb_thread_io_blocking_region(rb_blocking_function_t *func, void *data1, int fd);
|
||
VALUE rb_thread_io_blocking_call(rb_blocking_function_t *func, void *data1, int fd, int events);
|
||
/* thread.c (export) */
|
||
int ruby_thread_has_gvl_p(void); /* for ext/fiddle/closure.c */
|
||
RUBY_SYMBOL_EXPORT_END
|
||
int rb_threadptr_execute_interrupts(struct rb_thread_struct *th, int blocking_timing);
|
thread.c | ||
---|---|---|
/*
|
||
* ruby_thread_has_gvl_p - check if current native thread has GVL.
|
||
*
|
||
***
|
||
*** This API is EXPERIMENTAL!
|
||
*** We do not guarantee that this API remains in ruby 1.9.2 or later.
|
||
***
|
||
*/
|
||
int
|