Slide 80
Slide 80 text
strace with CRuby
futex(0x555e283e4464, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x555e283e4460, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT
, 1}) = 1
futex(0x555e283e4430, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x555e283e4498, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x555e283e449c, FUTEX_WAIT_PRIVATE, 91, NULL) = -1 EAGAIN (Resource temporarily unavailable)
write(6, "!", 1) = 1
futex(0x555e283e4430, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x555e283e4464, FUTEX_WAIT_PRIVATE, 95, NULL) = 0
futex(0x555e283e449c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x555e283e4498, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT
, 1}) = 1
futex(0x555e283e4430, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x555e283e4464, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x555e283e4460, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT
, 1}) = 1
futex(0x555e283e4430, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x555e283e4498, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x555e283e449c, FUTEX_WAIT_PRIVATE, 95, NULL) = -1 EAGAIN (Resource temporarily unavailable)
write(6, "!", 1) = 1
futex(0x555e283e4430, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x555e283e4464, FUTEX_WAIT_PRIVATE, 99, NULL) = 0
futex(0x555e283e449c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x555e283e4498, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT
, 1}) = 1
futex(0x555e283e4430, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x555e283e4464, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x555e283e4460, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT
, 1}) = 1
futex(0x555e283e4430, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x555e283e4498, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x555e283e449c, FUTEX_WAIT_PRIVATE, 99, NULL) = -1 EAGAIN (Resource temporarily unavailable)
It sometimes shows like below:
80