9 More Discussions You Might Find Interesting
1. Cybersecurity
Hi all,
I'm looking for secure file encryption tools that use MAC address as encryption key. FYI, I'm using Red Hat Enterprise Linux OS.
For example: when A wants to send file to B
A will encrypt the file with B's computer MAC/IP address as an encryption key
This file can only be decrypted... (2 Replies)
Discussion started by: sergionicosta
2 Replies
2. Shell Programming and Scripting
hey everyone,
I'm having some trouble breaking down some code. It's simple a control script that takes machines meant to be backed up from a list. Then according to that will run multi-threaded processes up until the specified thread limit.
for example if there are 4 machines to be backed up,... (2 Replies)
Discussion started by: terrell
2 Replies
3. Programming
I'm having a hard time figuring out how to manage deallocation of memory in multithreaded environments. Specifically what I'm having a hard time with is using a lock to protect a structure, but when it's time to free the structure, you have to unlock the lock to destroy the lock itself. Which will... (5 Replies)
Discussion started by: gngrwzrd
5 Replies
4. Programming
Hello All :
I write a .c program to test the exactually resource the memory leak
as follows:
1 #include <stdio.h>
2 #define NUM 100000
3 void *Thread_Run(void * arg){
4 //TODO
5 //pthread_datch(pthread_self());
6 int socket= (int)arg;
7 ... (1 Reply)
Discussion started by: aobai
1 Replies
5. Linux
Hello, are any of the encryption programs capable of true multi-threading ? Friend of mine tells me that he's been running some testing on Fedora 11 and that the kernel doesn't support multi-threading at that level.
I've been looking into TrueCrypt, encfs and both calm to support... (1 Reply)
Discussion started by: TehOne
1 Replies
6. Shell Programming and Scripting
I need to write a perl script to execute external programs and grab the output and return code. Each program should be killed if it has not completed within X seconds.
Imagine that the script goes something like this :
@commands = &get_commands();
foreach $cmd (@commands) {
$pid =... (4 Replies)
Discussion started by: SandmanCL
4 Replies
7. AIX
I have a Multithreaded program which is hanging on AIX.
OS Version: AIX 5.2 and thread library version : 5.2.0.75
We Initiate the process with 50 threads..when we are disconnecting from the process it hangs.There is lots of other stuff involved here.I am just sending the piece of the problem with... (0 Replies)
Discussion started by: hikrishn
0 Replies
8. Programming
I was wondering if anyone could give me a good idea how to calculate how balanced the threading is on a multi-threaded application. I want a percentage, such as "threads are 80% balanced."
This is the way I am currently going about it, maybe it is good, maybe not.
First, whenever a thread... (2 Replies)
Discussion started by: DreamWarrior
2 Replies
9. Programming
I am trying to writa a multi-client & multi-threaded TCP server.
There is a thread pool. Each thread in the pool will handle
requests of multiple clients.
But here I have a problem. I find a solution but it is not how
it must be... i think. When threads working without sleep(1)
I can't... (0 Replies)
Discussion started by: Parahat Melayev
0 Replies
libcurl-thread(3) libcurl thread safety libcurl-thread(3)
NAME
libcurl-thread - libcurl thread safety
Multi-threading with libcurl
libcurl is thread safe but has no internal thread synchronization. You may have to provide your own locking should you meet any of the
thread safety exceptions below.
Handles. You must never share the same handle in multiple threads. You can pass the handles around among threads, but you must never use a
single handle from more than one thread at any given time.
Shared objects. You can share certain data between multiple handles by using the share interface but you must provide your own locking and
set curl_share_setopt(3) CURLSHOPT_LOCKFUNC and CURLSHOPT_UNLOCKFUNC.
TLS
If you are accessing HTTPS or FTPS URLs in a multi-threaded manner, you are then of course using the underlying SSL library multi-threaded
and those libs might have their own requirements on this issue. You may need to provide one or two functions to allow it to function prop-
erly:
OpenSSL
OpenSSL 1.1.0 "can be safely used in multi-threaded applications provided that support for the underlying OS threading API is built-
in."
https://www.openssl.org/docs/manmaster/crypto/threads.html#DESCRIPTION
OpenSSL <= 1.0.2 the user must set callbacks.
https://www.openssl.org/docs/man1.0.2/crypto/threads.html#DESCRIPTION
https://curl.haxx.se/libcurl/c/opensslthreadlock.html
GnuTLS http://gnutls.org/manual/html_node/Thread-safety.html
NSS thread-safe already without anything required.
PolarSSL
Required actions unknown.
yassl Required actions unknown.
axTLS Required actions unknown.
Secure-Transport
The engine is used by libcurl in a way that is fully thread-safe.
WinSSL The engine is used by libcurl in a way that is fully thread-safe.
wolfSSL
The engine is used by libcurl in a way that is fully thread-safe.
BoringSSL
The engine is used by libcurl in a way that is fully thread-safe.
Other areas of caution
Signals
Signals are used for timing out name resolves (during DNS lookup) - when built without using either the c-ares or threaded resolver
backends. When using multiple threads you should set the CURLOPT_NOSIGNAL(3) option to 1L for all handles. Everything will or might
work fine except that timeouts are not honored during the DNS lookup - which you can work around by building libcurl with c-ares or
threaded-resolver support. c-ares is a library that provides asynchronous name resolves. On some platforms, libcurl simply will not
function properly multi-threaded unless the CURLOPT_NOSIGNAL(3) option is set.
Name resolving
gethostby* functions and other system calls. These functions, provided by your operating system, must be thread safe. It is very
important that libcurl can find and use thread safe versions of these and other system calls, as otherwise it can't function fully
thread safe. Some operating systems are known to have faulty thread implementations. We have previously received problem reports on
*BSD (at least in the past, they may be working fine these days). Some operating systems that are known to have solid and working
thread support are Linux, Solaris and Windows.
curl_global_* functions
These functions are not thread safe. If you are using libcurl with multiple threads it is especially important that before use you
call curl_global_init(3) or curl_global_init_mem(3) to explicitly initialize the library and its dependents, rather than rely on the
"lazy" fail-safe initialization that takes place the first time curl_easy_init(3) is called. For an in-depth explanation refer to
libcurl(3) section GLOBAL CONSTANTS.
Memory functions
These functions, provided either by your operating system or your own replacements, must be thread safe. You can use
curl_global_init_mem(3) to set your own replacement memory functions.
Non-safe functions
CURLOPT_DNS_USE_GLOBAL_CACHE(3) is not thread-safe.
libcurl 7.54.0 April 10, 2017 libcurl-thread(3)