Hi,

I have now fixed this issue:

http://svn.gna.org/viewcvs/relax/trunk/multi/uni_processor.py?r1=23254&r2=23253&pathrev=23254

As you can see, the change is incredibly simple, and it is exactly
what Gary documented in his FIXME comment.  It's almost a pity Troels
that, after finding the source of this 8 year old bug, you didn't take
the final honours and kill it.  You deserve the credit though as this
has been annoying multiple relax developers via the test suite for all
of those 8 years!  You should be able to find mentions of it
throughout the relax-devel mailing list archives.  No one thought to
look at the command queuing as the source of this.

Cheers,

Edward




On 20 May 2014 11:52, Troels Emtekær Linnet <[email protected]> wrote:
> Hi Ed.
>
> I tried hard for several hours yesterday.
>
> But this multi-processing goes beyond my skills...
>
> If you know a little more about, and can fix it, I would be very happy.
>
> I can try the thing you suggested, but beyond that, I would be lost.
>
> Best
> Trpels
>
> 2014-05-20 9:43 GMT+02:00 Edward d'Auvergne <[email protected]>:
>> Hi Troels,
>>
>> You might have actually have found the source of the problem!  This
>> has been an issue for a long time, but I never solved it.  It affects
>> many analysis types and I have always wondered why one failing test
>> would cause many subsequent tests of the same analysis type to fail.
>> This has been around longer than the dispersion analysis which was
>> started in 2009.  I always tried to solve it in the special
>> self.tearDown() test suite method for cleaning up after tests, but
>> this somehow never completely solved the issue.  So it could have
>> something to do with the FIXME comment in the run_queue() method of
>> the multi.uni_processor module:
>>
>>
>>     def run_queue(self):
>>         #FIXME: need a finally here to cleanup exceptions states for windows 
>> etc
>>
>>         last_command = len(self.command_queue)-1
>>         for i, command  in enumerate(self.command_queue):
>>             completed = (i == last_command)
>>
>>             command.run(self, completed)
>>
>>         #self.run_command_queue()
>>         #TODO: add cheques for empty queues and maps if now warn
>>         del self.command_queue[:]
>>         self.memo_map.clear()
>>
>>
>> There are a few minor FIXMEs and TODOs in Gary Thompson's
>> multi-processor framework.  But this one might be quite important for
>> the test suite.  You could try as the FIXME says, add a 'try-finally'
>> statements so the last two lines are always run.  This may cause other
>> issues, so be careful.
>>
>> Note, this must not be committed to your 'disp_speed' branch.  If you
>> have a fix, make sure it is applied to the trunk.
>>
>> Cheers,
>>
>> Edward
>>
>>
>>
>>
>>
>> On 20 May 2014 02:04, Troels E. Linnet <[email protected]> 
>> wrote:
>>> Additional Item Attachment, bug #22055 (project relax):
>>>
>>> File name: log.txt                        Size:792 KB
>>>
>>>
>>>     _______________________________________________________
>>>
>>> Reply to this item at:
>>>
>>>   <http://gna.org/bugs/?22055>
>>>
>>> _______________________________________________
>>>   Message sent via/by Gna!
>>>   http://gna.org/
>>>
>>>
>>> _______________________________________________
>>> relax (http://www.nmr-relax.com)
>>>
>>> This is the relax-devel mailing list
>>> [email protected]
>>>
>>> To unsubscribe from this list, get a password
>>> reminder, or change your subscription options,
>>> visit the list information page at
>>> https://mail.gna.org/listinfo/relax-devel

_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-devel mailing list
[email protected]

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel

Reply via email to