Project

General

Profile

Feature #10371

Use Thread#handle_interrupt in MonitorMixin

Added by nerdrew (Andrew Lazarus) almost 5 years ago. Updated about 4 years ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:65628]

Description

Now that ruby has Thread#handle_interrupt, MonitorMixin can always unlock the mutex even when a timeout exception is raised.

Currently, if a timeout exception is raised in MonitorMixin#mon_exit at just the wrong time, the @mon_owner is set to nil, but the @mon_mutex is still locked. ThreadError: deadlock; recursive locking is raised the next time the resource is accessed.

History

Updated by nerdrew (Andrew Lazarus) almost 5 years ago

There was an old bug that might have been related: https://bugs.ruby-lang.org/issues/4266

Also available in: Atom PDF