8000 Mutex blocks `Open3.capture3` · Issue #973 · castwide/solargraph · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Mutex blocks Open3.capture3 #973
Open
@unclenull

Description

@unclenull

It hangs after this output "Indexing workspace files in ...", which is caused by Open3.capture3 in generate_require_paths in workspace.rb never returns. The deepest root cause I could pin so far is @mutex.synchronize in tick in message_worker.rb. An experiment could prove this,

        def tick
require 'open3'
o, e, s = Open3.capture3("cmd", "/c", "echo 11111111")
STDERR.puts o
          message = @mutex.synchronize do
            @resource.wait(@mutex) if messages.empty?
            next_message
          end
STDERR.puts '2222222'
o, e, s = Open3.capture3("cmd", "/c", "echo 33333333")
STDERR.puts o
          handler = @host.receive(message)
          handler&.send_response
        end

Only 11111111 and 22222222 are outputted, no 3333333.
Without a thorough knowledge of this codebase, I can not go further. Please examine this. Thanks.

Solargraph v0.55.1
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [x64-mingw-ucrt]
Microsoft Windows 10 Pro  (10.0.19045 N/A Build 19045)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0