Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 13 for _cgo_tsan_release (0.22 sec)

  1. src/runtime/cgo/gcc_setenv.c

    /* Stub for calling setenv */
    void
    x_cgo_setenv(char **arg)
    {
    	_cgo_tsan_acquire();
    	setenv(arg[0], arg[1], 1);
    	_cgo_tsan_release();
    }
    
    /* Stub for calling unsetenv */
    void
    x_cgo_unsetenv(char **arg)
    {
    	_cgo_tsan_acquire();
    	unsetenv(arg[0]);
    	_cgo_tsan_release();
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Jan 24 22:38:02 UTC 2023
    - 487 bytes
    - Viewed (0)
  2. src/runtime/cgo/gcc_mmap.c

    	_cgo_tsan_acquire();
    	p = mmap(addr, length, prot, flags, fd, offset);
    	_cgo_tsan_release();
    	if (p == MAP_FAILED) {
    		/* This is what the Go code expects on failure.  */
    		return (uintptr_t)errno;
    	}
    	return (uintptr_t)p;
    }
    
    void
    x_cgo_munmap(void *addr, uintptr_t length) {
    	int r;
    
    	_cgo_tsan_acquire();
    	r = munmap(addr, length);
    	_cgo_tsan_release();
    	if (r < 0) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Aug 25 20:58:13 UTC 2023
    - 916 bytes
    - Viewed (0)
  3. src/runtime/cgo/gcc_freebsd_sigaction.c

    		}
    		act.sa_flags = goact->flags;
    	}
    
    	ret = sigaction(signum, goact ? &act : NULL, oldgoact ? &oldact : NULL);
    	if (ret == -1) {
    		// runtime.sigaction expects _cgo_sigaction to return errno on error.
    		_cgo_tsan_release();
    		return errno;
    	}
    
    	if (oldgoact) {
    		if (oldact.sa_flags & SA_SIGINFO) {
    			oldgoact->handler = (uintptr_t)(oldact.sa_sigaction);
    		} else {
    			oldgoact->handler = (uintptr_t)(oldact.sa_handler);
    		}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Jan 24 22:38:02 UTC 2023
    - 2K bytes
    - Viewed (0)
  4. src/runtime/cgo/libcgo.h

    __attribute__ ((unused))
    static void _cgo_tsan_acquire() {
    	__tsan_acquire(&_cgo_sync);
    }
    
    __attribute__ ((unused))
    static void _cgo_tsan_release() {
    	__tsan_release(&_cgo_sync);
    }
    
    #else // !defined(CGO_TSAN)
    
    #define _cgo_tsan_acquire()
    #define _cgo_tsan_release()
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Feb 13 20:50:04 UTC 2024
    - 3.5K bytes
    - Viewed (0)
  5. src/runtime/cgo/gcc_sigaction.c

    	}
    
    	ret = sigaction((int)signum, goact ? &act : NULL, oldgoact ? &oldact : NULL);
    	if (ret == -1) {
    		// runtime.rt_sigaction expects _cgo_sigaction to return errno on error.
    		_cgo_tsan_release();
    		return errno;
    	}
    
    	if (oldgoact) {
    		if (oldact.sa_flags & SA_SIGINFO) {
    			oldgoact->handler = (uintptr_t)(oldact.sa_sigaction);
    		} else {
    			oldgoact->handler = (uintptr_t)(oldact.sa_handler);
    		}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Jan 24 22:38:02 UTC 2023
    - 2.1K bytes
    - Viewed (0)
  6. src/runtime/cgo/gcc_stack_darwin.c

    	// bounds points into the Go stack. TSAN can't see the synchronization
    	// in Go around stack reuse.
    	_cgo_tsan_acquire();
    	bounds[0] = (uintptr)addr - size;
    	bounds[1] = (uintptr)addr;
    	_cgo_tsan_release();
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 16 01:32:45 UTC 2024
    - 617 bytes
    - Viewed (0)
  7. src/runtime/cgo/gcc_ppc64x.c

    	}
    }
    
    extern void crosscall_ppc64(void (*fn)(void), void *g);
    
    static void*
    threadentry(void *v)
    {
    	ThreadStart ts;
    
    	ts = *(ThreadStart*)v;
    	_cgo_tsan_acquire();
    	free(v);
    	_cgo_tsan_release();
    
    	// Save g for this thread in C TLS
    	setg_gcc((void*)ts.g);
    
    	crosscall_ppc64(ts.fn, (void*)ts.g);
    	return nil;
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Aug 09 03:13:11 UTC 2023
    - 1.3K bytes
    - Viewed (0)
  8. src/runtime/cgo/gcc_freebsd_amd64.c

    	}
    }
    
    extern void crosscall1(void (*fn)(void), void (*setg_gcc)(void*), void *g);
    static void*
    threadentry(void *v)
    {
    	ThreadStart ts;
    
    	ts = *(ThreadStart*)v;
    	_cgo_tsan_acquire();
    	free(v);
    	_cgo_tsan_release();
    
    	crosscall1(ts.fn, setg_gcc, (void*)ts.g);
    	return nil;
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Aug 22 22:06:46 UTC 2023
    - 1.5K bytes
    - Viewed (0)
  9. src/runtime/cgo/gcc_util.c

    /* Stub for creating a new thread */
    void
    x_cgo_thread_start(ThreadStart *arg)
    {
    	ThreadStart *ts;
    
    	/* Make our own copy that can persist after we return. */
    	_cgo_tsan_acquire();
    	ts = malloc(sizeof *ts);
    	_cgo_tsan_release();
    	if(ts == nil) {
    		fprintf(stderr, "runtime/cgo: out of memory in thread_start\n");
    		abort();
    	}
    	*ts = *arg;
    
    	_cgo_sys_thread_start(ts);	/* OS-dependent half */
    }
    
    #ifndef CGO_TSAN
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Aug 16 18:49:38 UTC 2017
    - 1.8K bytes
    - Viewed (0)
  10. src/runtime/cgo/gcc_stack_unix.c

    	// bounds points into the Go stack. TSAN can't see the synchronization
    	// in Go around stack reuse.
    	_cgo_tsan_acquire();
    	bounds[0] = (uintptr)addr;
    	bounds[1] = (uintptr)addr + size;
    	_cgo_tsan_release();
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 24 03:44:11 UTC 2024
    - 1.5K bytes
    - Viewed (0)
Back to top