file write collision consideration

RGK blank at empty.blank
Tue Jan 20 19:39:54 CET 2009


Thanks for the suggestions - sounds like a couple good options, I 
apprecieate it.

Ross.

MRAB wrote:
> RGK wrote:
>> I have a thread that is off reading things some of which will get 
>> written into a file while another UI thread manages input from a user.
>>
>> The reader-thread and the UI-thread will both want to write stuff to 
>> the same output file. What first comes to mind is that there may be 
>> write collisions, ie both trying to write at the same time.
>>
>> Should I do something like:
>>
>>
>> if busyFlag:
>>   while busyFlag:
>>      sleep(10)
>> else:
>>   busyFlag = True
>>   {write stuff to file}
>>   busyFlag = False
>>
>>
>> in both threads?   Is there some other approach that would be more 
>> appropriate?
>>
>> Thanks in advance for your advice
>>
> If you're using the threading module, I suggest you look at the 
> threading.RLock class:
> 
> my_lock = threading.RLock()
> ...
> with my_lock:
>     {write stuff to file}
> 
> or, if you're using an older version of Python:
> 
> my_lock = threading.RLock()
> ...
> my_lock.acquire()
> {write stuff to file}
> my_lock.release()



More information about the Python-list mailing list