> Guessing, concurrent threads, and locking. Never a good combination.
Thanks Chuck! Is there any choice then? Or every Workflow may have it's own editingContext() considering the ec would be lightweight and won't do anything else except modifying a single row? > > > On Aug 11, 2010, at 2:35 PM, Farrukh Ijaz wrote: > >> I am using ERXEC with default settings. I guess it takes care of the locking >> automatically. >> >> Sent from my iPad >> >> On 11-Aug-2010, at 11:58 PM, Chuck Hill <[email protected]> wrote: >> >>> >>> On Aug 11, 2010, at 1:41 PM, Farrukh Ijaz wrote: >>> >>>> >>>> >>>> Sent from my iPad >>>> >>>> On 11-Aug-2010, at 7:35 PM, Chuck Hill <[email protected]> wrote: >>>> >>>>> >>>>> On Aug 11, 2010, at 2:11 AM, Farrukh Ijaz wrote: >>>>> >>>>>> Hi All, >>>>>> >>>>>> Is it safe to invoke editingContext().saveChange() or >>>>>> editingContext().revert() in a method that is used through NSSelector >>>>>> and invoked by the NSNotificationCenter on postNotification()? >>>>> >>>>> >>>>> That likely depends on which notification. >>>> >>>> Okay, here is the real scenario. I have developed a Workflow Engine which >>>> is capable to run multiple workflows in parallel in their individual >>>> threads. Each workflow has methods as start(), stop(), suspend(), and >>>> resume(). The behavior of these methods is understood. Everything remains >>>> in memory. Now in order to persist their state I have created a >>>> corresponding entity. There are two columns of the entity, status and >>>> serializedInstance which change at any stage and that is depending upon >>>> user actions and workflow code. >>>> >>>> I have a workflow management dashboard which provides ability to view all >>>> the workflows defined in the system and to start, stop, resume and >>>> suspend. When I start the workflow, I call the method start() of the >>>> workflow entity, which internally triggers the associated workflow's >>>> start() method and also registers the entity to receive notifications from >>>> the workflow thread. The workflow thread post notifications such as when >>>> it completes the job or explicitly stopped, resumed, suspended etc. So >>>> upon these notifications, the workflow entity's onNotify() method is >>>> invoked which in turn based on the message, modifies the status column and >>>> serializedInstance column value and invokes, >>>> editingContext().saveChanges() inside the onNotify() method. >>> >>> You will have to make sure that the EC is locked before touching any of the >>> entity's persistent values or calling saveChanges() >>> >>>> >>>> I guess the story is too long but it is working fine so far. I just want >>>> to confirm that if this does not break anything at any stage or cause a >>>> deadlock situation? >>>> >>>>> >>>>> Chuck >>>>> >>>>> -- >>>>> Chuck Hill Senior Consultant / VP Development >>>>> >>>>> Practical WebObjects - for developers who want to increase their overall >>>>> knowledge of WebObjects or who are trying to solve specific problems. >>>>> http://www.global-village.net/products/practical_webobjects >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>> >>> -- >>> Chuck Hill Senior Consultant / VP Development >>> >>> Practical WebObjects - for developers who want to increase their overall >>> knowledge of WebObjects or who are trying to solve specific problems. >>> http://www.global-village.net/products/practical_webobjects >>> >>> >>> >>> >>> >>> >>> > > -- > Chuck Hill Senior Consultant / VP Development > > Practical WebObjects - for developers who want to increase their overall > knowledge of WebObjects or who are trying to solve specific problems. > http://www.global-village.net/products/practical_webobjects > > > > > > > _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
