{"action":"created","issue":{"url":"https://api.github.com/repos/brettwooldridge/NuProcess/issues/25","labels_url":"https://api.github.com/repos/brettwooldridge/NuProcess/issues/25/labels{/name}","comments_url":"https://api.github.com/repos/brettwooldridge/NuProcess/issues/25/comments","events_url":"https://api.github.com/repos/brettwooldridge/NuProcess/issues/25/events","html_url":"https://github.com/brettwooldridge/NuProcess/issues/25","id":91524368,"number":25,"title":"Underlying processes complete but waitFor times out (OSX)","user":{"login":"edalquist","id":633085,"avatar_url":"https://avatars.githubusercontent.com/u/633085?v=3","gravatar_id":"","url":"https://api.github.com/users/edalquist","html_url":"https://github.com/edalquist","followers_url":"https://api.github.com/users/edalquist/followers","following_url":"https://api.github.com/users/edalquist/following{/other_user}","gists_url":"https://api.github.com/users/edalquist/gists{/gist_id}","starred_url":"https://api.github.com/users/edalquist/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edalquist/subscriptions","organizations_url":"https://api.github.com/users/edalquist/orgs","repos_url":"https://api.github.com/users/edalquist/repos","events_url":"https://api.github.com/users/edalquist/events{/privacy}","received_events_url":"https://api.github.com/users/edalquist/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-06-27T22:31:22Z","updated_at":"2015-09-09T10:57:05Z","closed_at":null,"body":"I have an app that runs lots and lots of processes via a thread pool. Fairly consistently after running for ~30 minutes my calls to waitFor start hanging, stuck on the CountDownLatch. There are no nuprocess threads running and the underlying processes are all done.\r\n\r\nI'm wondering if `exitPending.countDown();` in `BasePosixProcess.onExit` should be moved into a finally block to ensure it is called if onExit is called.\r\n\r\n```\r\n\"pool-1-thread-7\" #18 prio=5 os_prio=31 tid=0x00007fca9307a000 nid=0x6303 waiting on condition [0x0000000126611000]\r\n   java.lang.Thread.State: TIMED_WAITING (parking)\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\t- parking to wait for  <0x000000076ab28ed8> (a java.util.concurrent.CountDownLatch$Sync)\r\n\tat java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1037)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1328)\r\n\tat java.util.concurrent.CountDownLatch.await(CountDownLatch.java:277)\r\n\tat com.zaxxer.nuprocess.internal.BasePosixProcess.waitFor(BasePosixProcess.java:151)\r\n\tat org.dalquist.photos.survey.PhotoHashingRunner$MetaDataExtractor.call(PhotoHashingRunner.java:277)\r\n\tat org.dalquist.photos.survey.PhotoHashingRunner$MetaDataExtractor.call(PhotoHashingRunner.java:1)\r\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\r\n\tat java.lang.Thread.run(Thread.java:745)\r\n\r\n   Locked ownable synchronizers:\r\n\t- <0x00000006c7d88990> (a java.util.concurrent.ThreadPoolExecutor$Worker)\r\n```"},"comment":{"url":"https://api.github.com/repos/brettwooldridge/NuProcess/issues/comments/138875402","html_url":"https://github.com/brettwooldridge/NuProcess/issues/25#issuecomment-138875402","issue_url":"https://api.github.com/repos/brettwooldridge/NuProcess/issues/25","id":138875402,"user":{"login":"brettwooldridge","id":1538661,"avatar_url":"https://avatars.githubusercontent.com/u/1538661?v=3","gravatar_id":"","url":"https://api.github.com/users/brettwooldridge","html_url":"https://github.com/brettwooldridge","followers_url":"https://api.github.com/users/brettwooldridge/followers","following_url":"https://api.github.com/users/brettwooldridge/following{/other_user}","gists_url":"https://api.github.com/users/brettwooldridge/gists{/gist_id}","starred_url":"https://api.github.com/users/brettwooldridge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brettwooldridge/subscriptions","organizations_url":"https://api.github.com/users/brettwooldridge/orgs","repos_url":"https://api.github.com/users/brettwooldridge/repos","events_url":"https://api.github.com/users/brettwooldridge/events{/privacy}","received_events_url":"https://api.github.com/users/brettwooldridge/received_events","type":"User","site_admin":false},"created_at":"2015-09-09T10:57:05Z","updated_at":"2015-09-09T10:57:05Z","body":"Can you test with the latest version, 1.0.0?\r\n"}}