gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

NSFileManager thread safety


From: Frederik Seiffert
Subject: NSFileManager thread safety
Date: Mon, 17 Jul 2023 17:46:21 +0200

Hi all,

We’re running into what seems to be a concurrency issue (on Windows) where our 
app crashes when concurrently calling -[NSData writeToFile:options:error:] (on 
separate NSData objects) from multiple threads.

I noticed that the method uses +[NSFileManager defaultManager], which I think 
used to not be thread safe on Apple platforms. Before digging into this deeper, 
I was wondering if anyone has knowledge about the thread safety of 
NSFileManager (or writeToFile) in GNUstep?

We can narrow down the crash when we place an autorelease pool immediately 
around the call to writeToFile, and the crash happens when releasing the pool:

Fatal Error: EXCEPTION_ACCESS_VIOLATION_READ / 0xffffffffffffffff

Thread 4756 Crashed:
0   objc.dll      0x7ff83e6727d0      objc_storeWeak
1   objc.dll      0x7ff83e671c4d      objc_autoreleasePoolPop
2   objc.dll      0x7ff83e671bc2      objc_autoreleasePoolPop
3   objc.dll      0x7ff83e67195b      objc_autoreleasePoolPop
4   MyApp.exe     0x7ff6e840005a      -[MyApp methodCallingNSDataWriteToFile]


Thanks!
Frederik




reply via email to

[Prev in Thread] Current Thread [Next in Thread]