Ticket #1154 (closed defect: fixed)

Opened 7 years ago

Last modified 7 years ago

Simultaneous image openings are problematic

Reported by: bdezonia Owned by: bdezonia
Priority: major Milestone: imagej2-b3-headless
Component: I/O Version:
Severity: serious Keywords:
Cc: Blocked By:
Blocking:

Description

Open a big dataset (such as T1 head). While it is opening try opening blobs. One of the images loads as expected. The other takes minutes before it appears on the screen.

(One thing to test: true with File Open or just Open Samples?)

Change History

comment:1 Changed 7 years ago by bdezonia

Debugging with print statements it is apparent that the first image (T1) cannot load because it is stuck in LegacyPlugin::waitForPluginThreads(). Apparently a thread related to Blobs is being seen as alive in T1's thread queue.

Its acting like the Image Fetcher whitelisting is failing in this multiple plugin run setting. And thus T1 is waiting for Blob's ImageFetcher to terminate. This is speculation though. Debug further.

comment:2 Changed 7 years ago by bdezonia

It's not specifically a Image Fetcher thread. But it is a thread stuck in a TIMED_WAITING state. Thread has no discernable name except that it starts with "ImageJ". Not sure what to whitelist or how.

comment:3 Changed 7 years ago by bdezonia

  • Status changed from new to closed
  • Resolution set to fixed

With commit 4cceb5569b8f660c6be89cd209f1ae8a6b65a54c long thread waits have been eliminated by having each LegacyPlugin run inside a new thread whose threadgroup is specified. WaitForPluginThreads() now only checks that threads hatched within the context of my new threadgroup are still running.

This results in a quick speedup opening multiple images simultaneously. Until the menu creation slowing bug is fixed this is not readily apparent.

Note: See TracTickets for help on using tickets.