Dear René, Thank you. This is really helpful. I hadn’t spotted the screencast and will check it out.
Mark > On 5 Sep 2016, at 09:34, René Bock <[email protected]> wrote: > > Hi Mark > >> Am 03.09.2016 um 22:36 schrieb Mark Wardle <[email protected]>: >> >> Dear all, >> >> I’m debugging a deadlock and realise that I probably need to re-design some >> of my code logic. >> >> Am I right in saying… >> >> 1. For a background thread, it is appropriate to create a new editing >> context (ERXEC.newEditingContext(osc)) using a dedicated and new object >> store coordinator (created using osc = new ERXObjectStoreCoordinator()). > > you should do that. > >> >> 2. For a background thread, all such editing contexts should be lock()’ed >> and then unlock()’ed - unlocked in finally {} clause in case of uncaught >> exceptions. Automatic locking is only for ECs used within the R-R loop? > > yes > >> >> 3. But what should one do if, either during a background thread, R-R loop >> (direct action or component action), one locks an editing context, does some >> processing of objects within that context, makes a network call, and then >> does some more processing within that context. Should one simply lock() and >> then hope for the best, or unlock, do the network process and then re-lock >> at the end. Are there any issues running unlock() if the EC isn’t actually >> locked? What happens if that network call never returns? > > You should handle network time-outs ;-) How long may the remote call may > take? Seconds, minutes or hours? If you have many background tasks waiting > network I/O, you may run out of OSCs or memory.. > > >> >> 4. Is locking an EC from a newly created OSC completely independent from all >> other OSC ECs? > > If you lock en EC, the other OSC (and theire ECs) are not affected > >> If that lock isn’t released for some time, does it matter? > > see above. > >> >> All advice appreciated, > > > By the way: there is a very helpful screencast on wocummunity: > > http://www.wocommunity.org/podcasts/wowodc/2011/BackgroundTasks.mov > > > Best regards > > René Bock > > -- > Phone: +49 69 650096 18 > > salient GmbH, Lindleystraße 12, 60314 Frankfurt > Main: +49 69 65 00 96 0 | http://www.salient-doremus.de > _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
