mirror of
https://github.com/zeromq/libzmq.git
synced 2025-01-05 10:43:19 +08:00
Merge pull request #1107 from jlauenercern/master
Allow change of pthread priority
This commit is contained in:
commit
859b43f1eb
@ -62,6 +62,7 @@ void zmq::thread_t::stop ()
|
||||
#else
|
||||
|
||||
#include <signal.h>
|
||||
#include <sstream>
|
||||
|
||||
extern "C"
|
||||
{
|
||||
@ -83,12 +84,36 @@ extern "C"
|
||||
}
|
||||
}
|
||||
|
||||
bool getenvi(const char *env_, int &result_)
|
||||
{
|
||||
char *str = getenv(env_);
|
||||
if(str == NULL)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
std::stringstream ss(str);
|
||||
return ss >> result_;
|
||||
}
|
||||
|
||||
void zmq::thread_t::start (thread_fn *tfn_, void *arg_)
|
||||
{
|
||||
tfn = tfn_;
|
||||
arg = arg_;
|
||||
int rc = pthread_create (&descriptor, NULL, thread_routine, this);
|
||||
posix_assert (rc);
|
||||
|
||||
int prio;
|
||||
if(getenvi("ZMQ_THREAD_PRIO", prio))
|
||||
{
|
||||
int policy = SCHED_RR;
|
||||
getenvi("ZMQ_THREAD_POLICY", policy);
|
||||
|
||||
struct sched_param param;
|
||||
param.sched_priority = prio;
|
||||
rc = pthread_setschedparam(descriptor, policy, ¶m);
|
||||
posix_assert (rc);
|
||||
}
|
||||
}
|
||||
|
||||
void zmq::thread_t::stop ()
|
||||
|
Loading…
x
Reference in New Issue
Block a user