Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
FOPEN() to go exclusive
Message
 
To
02/08/2003 12:01:16
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00816200
Message ID:
00816211
Views:
35
>I have a situation that I would like to resolve. It happens once after a million processes but I would like to make sure it doesn't happen again. I am using FOPEN() to detect if a specific file exist. If it exists, I FCLOSE() and ERASE it. However, if two users are going into that process at the about same time, it may well be that once one does FCLOSE() that the other one gets its FOPEN() before the first one do the ERASE thus it generates an error on the first one on that command.
>
>Here's the code:
>
>
>lnHandle=FOPEN(gcClientFat+'StyleSheet\'+PADL(gnMember,6,'0')+lcNextItem+'.css',12)
>IF lnHandle>0
>   FCLOSE(lnHandle)
>   ERASE (gcClientFat+'StyleSheet\'+PADL(gnMember,6,'0')+lcNextItem+'.css')
>ENDIF
>
>
>How can I make sure that the exclusive is preserved from the FOPEN() command to the ERASE command? Basically, I need to improve that mechanism to assure no collision happens.

Hi Michel,

This sounds like a situation that requires a more rigorous synchronization mechanism, such as obtaining a lock on a shared table or record. Otherwise, you could possible use one of the WinAPI Event facilities, as in examples related to enforcing single-instance apps.

Mike
Montage

"Free at last..."
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform