zlib:C中的线程安全zalloc和zfree?

时间:2012-10-12 16:09:37

标签: objective-c multithreading malloc zlib

我正在使用zlib C库来解压缩从网络流接收的数据,我有两个流在两个单独的NSThreads中运行。根据zlib文档,在两个线程中解压缩两个不同的zlib流需要zalloc和zfree是线程安全的。我目前正在通过Z_NULL(我的inflateinit代码)

zStream.zalloc = Z_NULL;
zStream.zfree = Z_NULL;
zStream.opaque = Z_NULL;
zStream.avail_in = 0;
zStream.next_in = Z_NULL;
int status = inflateInit(&zStream);
if (status != Z_OK)
    DLog(@"zlib setup error");
else
    DLog(@"zlib setup ok");
});

有没有人有使用zlib在单独的线程中压缩多个流的经验?有没有人见过zalloc和zfree的线程安全实现?

1 个答案:

答案 0 :(得分:4)

Mac OS X上的

malloc()free()已经是线程安全的。所以,只需用Z_NULL初始化结构,你就可以了。