{"action":"created","issue":{"url":"https://api.github.com/repos/eclipse/vert.x/issues/1289","labels_url":"https://api.github.com/repos/eclipse/vert.x/issues/1289/labels{/name}","comments_url":"https://api.github.com/repos/eclipse/vert.x/issues/1289/comments","events_url":"https://api.github.com/repos/eclipse/vert.x/issues/1289/events","html_url":"https://github.com/eclipse/vert.x/issues/1289","id":127397809,"number":1289,"title":"Worker verticle cannot synchronously wait for EventBus.send even when using additional workpool thread","user":{"login":"mstanescu","id":236410,"avatar_url":"https://avatars.githubusercontent.com/u/236410?v=3","gravatar_id":"","url":"https://api.github.com/users/mstanescu","html_url":"https://github.com/mstanescu","followers_url":"https://api.github.com/users/mstanescu/followers","following_url":"https://api.github.com/users/mstanescu/following{/other_user}","gists_url":"https://api.github.com/users/mstanescu/gists{/gist_id}","starred_url":"https://api.github.com/users/mstanescu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mstanescu/subscriptions","organizations_url":"https://api.github.com/users/mstanescu/orgs","repos_url":"https://api.github.com/users/mstanescu/repos","events_url":"https://api.github.com/users/mstanescu/events{/privacy}","received_events_url":"https://api.github.com/users/mstanescu/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":10,"created_at":"2016-01-19T09:09:21Z","updated_at":"2016-01-19T15:10:16Z","closed_at":null,"body":"The general idea is:\r\n - execute in an worker verticle\r\n - instantiate a countdown latch\r\n - use executeBlocking( { eventbus.send(...., { latch.countdown() } , **false** /* unordered */  )\r\n - wait for countdown latch.\r\n\r\nFrom my observations the eventbus.send finish execution however nothing happens on the eventbus. The target does not get any message.\r\n\r\nI tracked a bit the problem inside EventBus.send and it leads me to HazelcastAsyncMultiMap.get implementation which does an executeBlocking which is ordered with the caller. \r\nThe body of execute blocking in HazelcastAsyncMultiMap.get is never executed.\r\nThis is strange however because the eventbus.send is executed by another worker thread than the caller. \r\n\r\nIs this the expected behavior? Seems to me like a problem.\r\n\r\nSome code:\r\n\r\nhttps://github.com/mstanescu/vertx-hazelcast/blob/master/src/main/java/io/vertx/spi/cluster/hazelcast/impl/HazelcastAsyncMultiMap.java\r\n\r\nYou can see the implementation of the awaitResult that i am using here.\r\nhttps://github.com/mstanescu/thread-test/blob/master/src/main/java/com/qnective/qtalkng/Sync.java\r\n\r\nAnd how i use it here:\r\nhttps://github.com/mstanescu/thread-test/blob/master/src/main/java/com/qnective/qtalkng/SerializedRequester.java\r\n\r\nSorry but the project is not compileable as a standalone but you can just copy this class. Will notify when i make the project work as a standalone project.\r\n\r\n\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/eclipse/vert.x/issues/comments/172882141","html_url":"https://github.com/eclipse/vert.x/issues/1289#issuecomment-172882141","issue_url":"https://api.github.com/repos/eclipse/vert.x/issues/1289","id":172882141,"user":{"login":"mstanescu","id":236410,"avatar_url":"https://avatars.githubusercontent.com/u/236410?v=3","gravatar_id":"","url":"https://api.github.com/users/mstanescu","html_url":"https://github.com/mstanescu","followers_url":"https://api.github.com/users/mstanescu/followers","following_url":"https://api.github.com/users/mstanescu/following{/other_user}","gists_url":"https://api.github.com/users/mstanescu/gists{/gist_id}","starred_url":"https://api.github.com/users/mstanescu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mstanescu/subscriptions","organizations_url":"https://api.github.com/users/mstanescu/orgs","repos_url":"https://api.github.com/users/mstanescu/repos","events_url":"https://api.github.com/users/mstanescu/events{/privacy}","received_events_url":"https://api.github.com/users/mstanescu/received_events","type":"User","site_admin":false},"created_at":"2016-01-19T15:10:15Z","updated_at":"2016-01-19T15:10:15Z","body":"@pron The Java 9 thing sounds interesting. Do you have more details on how this will aid quasar to be completely transparent? \r\n"}}