I read somewhere (Very sorry I couldn't get the link now) that golang uses 
libc to implement syscalls when the code is built in c-shared mode. I want 
to check if this true. 

I was using a go c-shared library as a plugin in my C code, and I wanted to 
interpose some of the syscalls. If go really implements the syscalls using 
libc, it would be easier to implement it, but it doesn't seem go uses libc. 
At some point I got a deadlock, and the deadlock happens at a point where 
go implemented the futex syscall without libc (). 

TEXT runtime·futex(SB),NOSPLIT,$0
   MOVQ   addr+0(FP), DI
   MOVL   op+8(FP), SI
   MOVL   val+12(FP), DX
   MOVQ   ts+16(FP), R10
   MOVQ   addr2+24(FP), R8
   MOVL   val3+32(FP), R9
   MOVL   $SYS_futex, AX
   SYSCALL
   MOVL   AX, ret+40(FP)

   RET

 

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/a8def403-c919-4d88-b641-c3226657a9b8o%40googlegroups.com.

Reply via email to