You are a star, Alex. Thank you :) Jim
On 10 June 2015 at 15:15, Alexander Gallego <agall...@concord.io> wrote: > Jim, > > Let me prototype something small today. After reading my scheduler (in > c++) i do have comments and synchronization on some state vars, but it > might have to do with a more complex async code base I manage. > > I'll get back to you. > > - alex > > > On Wed, Jun 10, 2015 at 6:15 AM, James Vanns <jvanns....@gmail.com> wrote: > >> Thanks for the responses, guys. That link of the 'detailed description' >> will be handy - I've not come across that before. I do now have another >> question though! Aren't these two a contradiction; >> >> Alex; >> "you launch a task, before the method returns (say you do some blocking >> stuff after, like sync update zookeeper), you might get a statusUpdate() >> callback." >> Ben; >> "Methods will not be invoked concurrently, and each method must complete >> before the next is called." >> >> ?? >> >> Jim >> >> >> On 10 June 2015 at 02:22, Benjamin Mahler <benjamin.mah...@gmail.com> >> wrote: >> >>> If that's really what you're seeing, it is a bug and a very surprising >>> one, so please provide evidence :) >>> >>> See the "detailed description" here: >>> http://mesos.apache.org/api/latest/c++/classmesos_1_1Scheduler.html >>> >>> The scheduler driver will serially invoke methods on your Scheduler >>> implementation. Methods will not be invoked concurrently, and each method >>> must complete before the next is called. >>> >>> So, we recommend that you don't block inside the callbacks. Otherwise, >>> you're blocking the driver as well and your own ability to continue >>> processing callbacks. >>> >>> On Tue, Jun 9, 2015 at 8:58 AM, James Vanns <jvanns....@gmail.com> >>> wrote: >>> >>>> Hi. I'm toying with the mesos scheduler (C++) API and running into >>>> unexpected race conditions. I have *not* synchronised access to attributes >>>> of my Scheduler-derived class. Is the mesos library code threaded and >>>> network communication asynchronous? What it *looks like* I'm seeing is my >>>> statusUpdate() callback being executed before the return of >>>> resourceOffers(). Naturally I call driver->launchTasks() inside >>>> resourceOffers(). This is intermittent but generally triggered by tasks >>>> that report status changes very quickly; eg. a task that fails instantly. >>>> >>>> Can anyone point me in the right direction of any online API docs that >>>> explain how callbacks are invoked? Distributed over a pool of worker >>>> threads? >>>> >>>> Also are the state transitions documented? Eg. >>>> mesos::TASK_STAGING -> mesos::TASK_STARTING -> etc. >>>> >>>> Cheers, >>>> >>>> Jim >>>> >>>> -- >>>> Senior Code Pig >>>> Industrial Light & Magic >>>> >>> >>> >> >> >> -- >> -- >> Senior Code Pig >> Industrial Light & Magic >> > > > > -- -- Senior Code Pig Industrial Light & Magic