On Aug 11, 2010, at 2:47 PM, Farrukh Ijaz wrote:

> 
> 
>> 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?

I think the thread should own the EC.  It is still responsible to lock and 
unlock it.  And you probably don't need the notifications in this case.

Chuck


>> 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
>> 
>> 
>> 
>> 
>> 
>> 
>> 

-- 
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







Attachment: smime.p7s
Description: S/MIME cryptographic signature

 _______________________________________________
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]

Reply via email to