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

