https://issues.apache.org/bugzilla/show_bug.cgi?id=46336
--- Comment #6 from Andreas L. Delmelle <[email protected]> 2008-12-22 16:03:38 PST --- Created an attachment (id=23047) --> (https://issues.apache.org/bugzilla/attachment.cgi?id=23047) patch proposal Another attempt, slightly better IIC, but still not bullet-proof. If getFontInfos() returns an outdated entry, and another thread has already started the removal/readdition, then the thread will wait until it is notified by either addFont() or registerFailedFont(). Tricky bits: - after the notification, we're still not sure that it stems from the same font we're waiting for... (any addFont() or registerFailedFont() will trigger notifyAll()) - if the removal/readdition has begun, and one thread is busy reloading the font, getFontInfos() will still return null (parallel loading still remains possible) Remaining question (not immediately clear to me): Is it conceivable that one thread removes the outdated entry, yet neither addFont() nor registerFailedFont() is called later? It didn't seem so, but should that be the case, the wait() method should probably be passed a reasonable maximum duration to avoid eternal sleep. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug.
