Projects

Ticket #196 (closed defect: fixed)

Opened 3 years ago

Last modified 2 years ago

GVL is held when invoking blocking run-loop related calls

Reported by: peter.royal@… Owned by: lsansonetti@…
Priority: major Milestone: MacRuby 0.5
Component: MacRuby Keywords: gvl lock runloop
Cc:

Description

the Ruby GVL is held when using a NSRunLoop from a secondary thread.

if i change my code from:

run_loop.runMode(NSDefaultRunLoopMode, beforeDate: NSDate.distantFuture)

to:

run_loop.runMode(NSDefaultRunLoopMode, beforeDate: NSDate.dateWithTimeIntervalSinceNow(1))

i can get a "slow motion" UI, as the main thread gets blocked every other second.

this is with r776 on the MacRuby trunk

Attachments

macruby locked threads.txt Download (3.4 KB) - added by peter.royal@… 3 years ago.
ActivityMonitor sample showing two threads

Change History

Changed 3 years ago by peter.royal@…

ActivityMonitor sample showing two threads

Changed 2 years ago by lsansonetti@…

  • status changed from new to closed
  • resolution set to fixed
  • milestone changed from MacRuby 0.4 to MacRuby 0.5

This problem should not appear with trunk. Let us know if it causes problems.

Note: See TracTickets for help on using tickets.