• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ pthread_attr_getschedparam函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中pthread_attr_getschedparam函数的典型用法代码示例。如果您正苦于以下问题:C++ pthread_attr_getschedparam函数的具体用法?C++ pthread_attr_getschedparam怎么用?C++ pthread_attr_getschedparam使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了pthread_attr_getschedparam函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: pthread_attr_init

TCGvoid TCGClient::AddThreadPriority()
{
#ifdef ANDROID
#if 0    /* Add thread priority */
    pthread_attr_t  attr;
    TCGbool         policy;
    TCGbool         rs;
    struct          sched_param param;
    TCGbool         maxThreadPriority;

    rs = pthread_attr_init(&attr);
    pthread_attr_getschedpolicy(&attr, &policy);

    if (policy != SCHED_RR)
    {
        pthread_attr_setschedpolicy(&attr, SCHED_RR);
    }

    maxThreadPriority = sched_get_priority_max(SCHED_RR);

    rs = pthread_attr_getschedparam(&attr, &param);
    policy =  param.sched_priority;
    if (policy < maxThreadPriority)
    {
        param.sched_priority = maxThreadPriority;
        pthread_attr_setschedparam(&attr, &param);

        rs = pthread_attr_getschedparam(&attr, &param);
    }
#endif
#endif
}
开发者ID:hyyh619,项目名称:GLESAPIAnalyzer,代码行数:32,代码来源:TcgMacOSXClient.cpp


示例2: pthread_attr_init

void CPosixThreadImpl::start(IRhoRunnable *pRunnable, IRhoRunnable::EPriority ePriority)
{
    pthread_attr_t  attr;
    int return_val = pthread_attr_init(&attr);
    //return_val = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
    RHO_ASSERT(!return_val);

    if ( ePriority != IRhoRunnable::epNormal)
    {
        sched_param param;
        return_val = pthread_attr_getschedparam (&attr, &param);
        param.sched_priority = ePriority == IRhoRunnable::epLow ? 20 : 100; //TODO: sched_priority
        return_val = pthread_attr_setschedparam (&attr, &param);
    }

    #ifdef __SYMBIAN32__
        size_t stacksize = 80000;
        pthread_attr_setstacksize(&attr, stacksize);
    #endif

    int thread_error = pthread_create(&m_thread, &attr, &runProc, pRunnable);
    return_val = pthread_attr_destroy(&attr);
    RHO_ASSERT(!return_val);
    RHO_ASSERT(thread_error==0);
}
开发者ID:CSanshulgandhi,项目名称:rhodes,代码行数:25,代码来源:PosixThreadImpl.cpp


示例3: httpreq_init

gm_Bool
httpreq_init(int port, int boost_prio)
{
  char portnum[8];
  int i;
  pthread_attr_t att;
  struct sched_param sched;

  sprintf(portnum,"%d",port);
  gSock = slisten(portnum);

  if (gSock < 1) {
    /* failed to open listening socket */
    MON_SEND_2(MON_ERR,"Socket listen failed: %s\n", strerror(errno));
    return gm_False;
    /* NOTREACHED */
  }

  i = 1;
  if (setsockopt(gSock, SOL_SOCKET, SO_REUSEADDR, (const char *)&i, sizeof(int))
      != 0) {
    MON_SEND_2(MON_ERR,"setsockopt SO_REUSEADDR: %s", strerror(errno));  
  }
  
  i = 0;
  if (setsockopt(gSock, SOL_SOCKET, SO_KEEPALIVE, (const char *)&i, sizeof(int))
      != 0) {
    MON_SEND_2(MON_ERR,"setsockopt SO_KEEPALIVE: %s", strerror(errno));
  }

  MON_SEND_2(MON_LOGGING,"(HTTP): listening on port %d\n", port);

  n_httpreqs = 1;

  /* spawn a local worker thread  */

  THR_OP("HTTP thread attrs init", pthread_attr_init(&att));
  THR_OP("HTTP set global scope",
         pthread_attr_setscope(&att, PTHREAD_SCOPE_SYSTEM));
  THR_OP("HTTP get sched params",
         pthread_attr_getschedparam(&att, &sched));

#ifdef _MIT_POSIX_THREADS
  sched.prio += boost_prio;
#else
  sched.sched_priority += boost_prio;
#endif

  THR_OP("HTTP boost prio",
         pthread_attr_setschedparam(&att, &sched));
  MON_SEND_2(MON_LOGGING,"Boosting HTTP accept() thread prio by %d\n",
	     boost_prio);
  THR_OP("Thread create HTTP",
         pthread_create(&thr_http, (pthread_attr_t *)&att,
                        http_eventloop_proc, (void *)NULL));
  
  proxy_debug_2(DBG_HTTP, "Spawned HTTP worker thread\n");
  return gm_True;

}
开发者ID:armandofox,项目名称:glomop,代码行数:60,代码来源:httpreq.c


示例4: start_thread_TRIGGER

int start_thread_TRIGGER(struct radclock_handle *handle)
{
	int err;
	pthread_attr_t thread_attr;
	pthread_attr_init(&thread_attr);
	pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_JOINABLE);
	struct sched_param sched;

	/*
	 * Increase the priority of that particular thread to improve the accuracy
	 * of the packet sender
	 */
	err = pthread_attr_getschedparam (&thread_attr, &sched);
	sched.sched_priority = sched_get_priority_max(SCHED_FIFO);
	err = pthread_attr_setschedparam (&thread_attr, &sched);
	
	pthread_attr_setschedpolicy(&thread_attr, SCHED_FIFO);

	verbose(LOG_NOTICE, "Starting trigger thread");
	err = pthread_create(&(handle->threads[PTH_TRIGGER]), &thread_attr,
			thread_trigger, (void *)(handle));
	if (err)
		verbose(LOG_ERR, "pthread_create() returned error number %d", err);
	
	return (err);
}
开发者ID:ben51,项目名称:radclock,代码行数:26,代码来源:pthread_mgr.c


示例5: defined

void CPosixThreadImpl::start(IRhoRunnable *pRunnable, IRhoRunnable::EPriority ePriority)
{
#if defined(OS_ANDROID)
    // Android has no pthread_condattr_xxx API
    pthread_cond_init(&m_condSync, NULL);
#else
    pthread_condattr_t sync_details;
    pthread_condattr_init(&sync_details);
    pthread_cond_init(&m_condSync, &sync_details);
    pthread_condattr_destroy(&sync_details);
#endif

    pthread_attr_t  attr;
    int return_val = pthread_attr_init(&attr);
    return_val = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
    RHO_ASSERT(!return_val);

    if ( ePriority != IRhoRunnable::epNormal)
    {
        sched_param param;
        return_val = pthread_attr_getschedparam (&attr, &param);
        param.sched_priority = ePriority == IRhoRunnable::epLow ? 20 : 100; //TODO: sched_priority
        return_val = pthread_attr_setschedparam (&attr, &param);
    }

    int thread_error = pthread_create(&m_thread, &attr, &runProc, pRunnable);
    return_val = pthread_attr_destroy(&attr);
    RHO_ASSERT(!return_val);
    RHO_ASSERT(thread_error==0);
}
开发者ID:MacBoyPro,项目名称:rhodes,代码行数:30,代码来源:PosixThreadImpl.cpp


示例6: forward_create_thread

static int forward_create_thread(pthread_t *tid, thread_param_t *arg)
{
	int t;
	pthread_attr_t attr;
	struct sched_param param;

	pthread_attr_init(&attr);

	pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED);

	pthread_attr_setschedpolicy(&attr, DEF_SCHED_POLICY);

	pthread_attr_getschedparam(&attr, &param);
	param.sched_priority = DEF_PRIORITY;
	pthread_attr_setschedparam(&attr, &param);

	for (t = 0; t < NUM_THREADS; t++) {
		if (pthread_create(&tid[t], &attr, forward_thread, (void *) &arg[t])) {
			error_printf("forward_create_thread failed\n");
			return -1;
		}
	}

	pthread_attr_destroy(&attr);
	return 0;
}
开发者ID:Bai-Yingjie,项目名称:morrowind,代码行数:26,代码来源:forward_server.c


示例7: thread_createwithpriority

static int thread_createwithpriority(pthread_t *tid,int threadpriority,void *(*func)(void *),void *arg)
{
//pthread_t 		tid;
pthread_attr_t 	tattr;
struct sched_param 	param;
int ret;
int newprio = threadpriority;//20;


	// initialized with default attributes
	ret = pthread_attr_init(&tattr);
	// safe to get existing scheduling param
	ret = pthread_attr_getschedparam(&tattr, &param);
	// set the priority; others are unchanged

	//liqapp_log("thread schedparam=%i (current)",param.sched_priority);

	param.sched_priority = newprio;
	// setting the new scheduling param
	ret = pthread_attr_setschedparam(&tattr, &param);
	// with new priority specified

	ret = pthread_create(tid, &tattr, func, arg);


//	ret = pthread_create(tid, NULL, func, arg);
	return ret;
}
开发者ID:lcuk,项目名称:libliqbase,代码行数:28,代码来源:liqtimer.c


示例8: g_thread_create_posix_impl

static void
g_thread_create_posix_impl (GThreadFunc thread_func, 
			    gpointer arg, 
			    gulong stack_size,
			    gboolean joinable,
			    gboolean bound,
			    GThreadPriority priority,
			    gpointer thread)
{
  pthread_attr_t attr;

  g_return_if_fail (thread_func);

  posix_check_for_error (pthread_attr_init (&attr));
  
#ifdef HAVE_PTHREAD_ATTR_SETSTACKSIZE
  if (stack_size)
    {
      stack_size = MAX (g_thread_min_stack_size, stack_size);
      posix_check_for_error (pthread_attr_setstacksize (&attr, stack_size));
    }
#endif /* HAVE_PTHREAD_ATTR_SETSTACKSIZE */

#ifdef PTHREAD_SCOPE_SYSTEM
  if (bound)
    /* No error check here, because some systems can't do it and we
     * simply don't want threads to fail because of that. */
    pthread_attr_setscope (&attr, PTHREAD_SCOPE_SYSTEM);
#endif /* PTHREAD_SCOPE_SYSTEM */

#ifdef G_THREADS_IMPL_POSIX
  posix_check_for_error (pthread_attr_setdetachstate (&attr,
          joinable ? PTHREAD_CREATE_JOINABLE : PTHREAD_CREATE_DETACHED));
#endif /* G_THREADS_IMPL_POSIX */
  
#ifdef HAVE_PRIORITIES
# ifdef G_THREADS_IMPL_POSIX
  {
    struct sched_param sched;
    posix_check_for_error (pthread_attr_getschedparam (&attr, &sched));
    sched.sched_priority = g_thread_map_priority (priority);
    posix_check_for_error (pthread_attr_setschedparam (&attr, &sched));
  }
# else /* G_THREADS_IMPL_DCE */
  posix_check_for_error 
    (pthread_attr_setprio (&attr, g_thread_map_priority (priority)));
# endif /* G_THREADS_IMPL_DCE */
#endif /* HAVE_PRIORITIES */

  posix_check_for_error (pthread_create (thread, &attr, 
                                         (void* (*)(void*))thread_func,
                                         arg));
  
  posix_check_for_error (pthread_attr_destroy (&attr));

#ifdef G_THREADS_IMPL_DCE
  if (!joinable)
    posix_check_for_error (pthread_detach (thread));
#endif /* G_THREADS_IMPL_DCE */
}
开发者ID:Onjrew,项目名称:OpenEV,代码行数:60,代码来源:gthread-posix.c


示例9: InitThread

int InitThread(pthread_t *threadId, int prio, void *(*func)(void *), void *param){
	pthread_attr_t attr;
	sched_param sched;

	if(pthread_attr_init(&attr) != EOK)
		return -1;

	if(pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) != EOK)
		return -1;

	if(pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED) != EOK)
		return -1;

	if(pthread_attr_setschedpolicy(&attr, SCHED_FIFO) != EOK)
		return -1;

	if(pthread_attr_getschedparam(&attr, &sched) != EOK)
		return -1;

	sched.sched_priority = prio;

 	if(pthread_attr_setschedparam(&attr, &sched) != EOK)
		return -1;


	if(pthread_create(threadId, &attr, func, param) != EOK)
		return -1;

	if(pthread_attr_destroy(&attr) != 0)
		return -1;

	return 1;
}
开发者ID:JoshMarino,项目名称:lims-hsv-system,代码行数:33,代码来源:Qnx.C


示例10: clone_attributes

void
clone_attributes(pthread_attr_t *new_attr, pthread_attr_t *old_attr)
{
    struct sched_param param;
    void *addr;
    size_t size;
    int value;

    (void) pthread_attr_init(new_attr);

    if (old_attr != NULL) {
        (void) pthread_attr_getstack(old_attr, &addr, &size);
        /* don't allow a non-NULL thread stack address */
        (void) pthread_attr_setstack(new_attr, NULL, size);

        (void) pthread_attr_getscope(old_attr, &value);
        (void) pthread_attr_setscope(new_attr, value);

        (void) pthread_attr_getinheritsched(old_attr, &value);
        (void) pthread_attr_setinheritsched(new_attr, value);

        (void) pthread_attr_getschedpolicy(old_attr, &value);
        (void) pthread_attr_setschedpolicy(new_attr, value);

        (void) pthread_attr_getschedparam(old_attr, &param);
        (void) pthread_attr_setschedparam(new_attr, &param);

        (void) pthread_attr_getguardsize(old_attr, &size);
        (void) pthread_attr_setguardsize(new_attr, size);
    }

    /* make all pool threads be detached threads */
    (void) pthread_attr_setdetachstate(new_attr, PTHREAD_CREATE_DETACHED);
}
开发者ID:chavula,项目名称:control-plane,代码行数:34,代码来源:thr_pool.c


示例11: SetThreadPriority

void NONS_Thread::call(NONS_ThreadedFunctionPointer function,void *data,bool give_highest_priority){
	if (this->called)
		return;
	threadStruct *ts=new threadStruct;
	ts->f=function;
	ts->d=data;
#if NONS_SYS_WINDOWS
	this->thread=CreateThread(0,0,(LPTHREAD_START_ROUTINE)runningThread,ts,0,0);
	if (give_highest_priority)
		SetThreadPriority(this->thread,THREAD_PRIORITY_HIGHEST);
#elif NONS_SYS_UNIX
	pthread_attr_t attr,
		*pattr=0;
	if (give_highest_priority){
		pattr=&attr;
		pthread_attr_init(pattr);
		sched_param params;
		pthread_attr_getschedparam(pattr,&params);
		int policy;
		pthread_attr_getschedpolicy(pattr,&policy);
		params.sched_priority=sched_get_priority_max(policy);
		pthread_attr_setschedparam(pattr,&params);
	}
	pthread_create(&this->thread,pattr,runningThread,ts);
	if (give_highest_priority)
		pthread_attr_destroy(pattr);
#elif NONS_SYS_PSP
	this->thread=SDL_CreateThread(runningThread,ts);
#endif
	this->called=1;
}
开发者ID:xmoeproject,项目名称:X-moe,代码行数:31,代码来源:Thread.cpp


示例12: test_schedparam

int test_schedparam(pthread_attr_t * attr, int prio, int err_number){
	struct sched_param param;
	param.sched_priority = prio;

	errno = 0;
	pthread_attr_setschedparam(attr, &param);
	if ( err_number != errno ){
		if ( errno == 0 ){
			printf("expected errno %d\n", errno);
		} else {
			printf("prio %d ", prio);
			fflush(stdout);
			perror("failed to set");
		}
		return -1;
	}

	if ( errno == 0 ){
		if ( pthread_attr_getschedparam(attr, &param) < 0 ){
			fflush(stdout);
			perror("failed to get");
			return -1;
		}

		if ( param.sched_priority != prio ){
			printf("failed to set/get (%d != %d)\n", param.sched_priority, prio);
			return -1;
		}
	}
	return 0;
}
开发者ID:CoActionOS,项目名称:CoActionOS-Apps,代码行数:31,代码来源:attr_test.c


示例13: throw

int
Thread::getPriority() const
    throw (IllegalThreadStateException)
{
    if(m_thread_state == TIDTHR_ERROR){
        throw IllegalThreadStateException
                ("Thread::getPriority() Invalid Object");
    }

    sched_param param;
    int policy;

    if(m_thread_state != TIDTHR_CREATED) {
        if(pthread_getschedparam(m_thread_id.value(),&policy, &param)) {
            return param.sched_priority;
        }      
    }
    // else the thread is not active, return the Thread creation priority
  
    const pthread_attr_t* attr = 
        (m_thread_attributes == NULL) ?  
            m_thread_group->getAttributes() : m_thread_attributes;

    pthread_attr_getschedparam(attr, &param);

    return param.sched_priority;
}
开发者ID:AlvaroVega,项目名称:TIDorbC,代码行数:27,代码来源:Thread.C


示例14: display_pthread_attr

static void display_pthread_attr (pthread_attr_t *attr, char *prefix)
{
  int s, i;
  size_t v;
  void *stkaddr;
  struct sched_param sp;

  s = pthread_attr_getdetachstate (attr, &i);
  if (s != 0)
    handle_error_en (s, "pthread_attr_getdetachstate");
  printf ("%sDetach state        = %s\n", prefix,
          (i == PTHREAD_CREATE_DETACHED)
              ? "PTHREAD_CREATE_DETACHED"
              : (i == PTHREAD_CREATE_JOINABLE) ? "PTHREAD_CREATE_JOINABLE"
                                               : "???");

  s = pthread_attr_getscope (attr, &i);
  if (s != 0)
    handle_error_en (s, "pthread_attr_getscope");
  printf ("%sScope               = %s\n", prefix,
          (i == PTHREAD_SCOPE_SYSTEM)
              ? "PTHREAD_SCOPE_SYSTEM"
              : (i == PTHREAD_SCOPE_PROCESS) ? "PTHREAD_SCOPE_PROCESS"
                                             : "???");

  s = pthread_attr_getinheritsched (attr, &i);
  if (s != 0)
    handle_error_en (s, "pthread_attr_getinheritsched");
  printf ("%sInherit scheduler   = %s\n", prefix,
          (i == PTHREAD_INHERIT_SCHED)
              ? "PTHREAD_INHERIT_SCHED"
              : (i == PTHREAD_EXPLICIT_SCHED) ? "PTHREAD_EXPLICIT_SCHED"
                                              : "???");

  s = pthread_attr_getschedpolicy (attr, &i);
  if (s != 0)
    handle_error_en (s, "pthread_attr_getschedpolicy");
  printf ("%sScheduling policy   = %s\n", prefix,
          (i == SCHED_OTHER)
              ? "SCHED_OTHER"
              : (i == SCHED_FIFO) ? "SCHED_FIFO" : (i == SCHED_RR) ? "SCHED_RR"
                                                                   : "???");

  s = pthread_attr_getschedparam (attr, &sp);
  if (s != 0)
    handle_error_en (s, "pthread_attr_getschedparam");
  printf ("%sScheduling priority = %d\n", prefix, sp.sched_priority);

  s = pthread_attr_getguardsize (attr, &v);
  if (s != 0)
    handle_error_en (s, "pthread_attr_getguardsize");
  printf ("%sGuard size          = %ld bytes\n", prefix, v);

  s = pthread_attr_getstack (attr, &stkaddr, &v);
  if (s != 0)
    handle_error_en (s, "pthread_attr_getstack");
  printf ("%sStack address       = %p\n", prefix, stkaddr);
  printf ("%sStack size          = 0x%zx bytes\n", prefix, v);
}
开发者ID:egb2016,项目名称:course-info,代码行数:59,代码来源:pthread_attr.c


示例15: api_get_thread_priority

static int api_get_thread_priority(pthread_attr_t *attr)
{
	struct sched_param param;
	int rs = pthread_attr_getschedparam(attr, &param);
	assert (rs == 0);
	printf ("priority = %d\n", param.__sched_priority);
	return param.__sched_priority;
}
开发者ID:sky8336,项目名称:mn201307,代码行数:8,代码来源:main.c


示例16: CKErrNoException

int CKFWThread::start( )
{
  int lReturnCode = 0;
  pthread_attr_t lThreadAttribute;
  int lThreadPolicy;
  struct sched_param lThreadScheduleParameters;
  int lError = 0;
  if ( (lError = pthread_attr_init( &lThreadAttribute ) ) != 0 ) {
    throw CKErrNoException( __FILE__, __LINE__, lError );
  }

  if ( (lError = pthread_attr_getschedpolicy( &lThreadAttribute, &lThreadPolicy )) != 0 ) {
    throw CKErrNoException( __FILE__, __LINE__, lError );
  }

  if ( (lError =
        pthread_attr_getschedparam( &lThreadAttribute, &lThreadScheduleParameters)) != 0) {
    throw CKErrNoException( __FILE__, __LINE__, lError );
  }

  pthread_attr_setschedpolicy( &lThreadAttribute, mPolicy );
  pthread_attr_getschedpolicy( &lThreadAttribute, &mPolicy );

  if ( mPriority < 0.0 )
    mPriority = 0.0;
  if ( mPriority > 1.0 )
    mPriority = 1.0;

  int lPriorMax = sched_get_priority_max( mPolicy );
  int lPriorMin = sched_get_priority_min( mPolicy );

  lThreadScheduleParameters.sched_priority = lPriorMin +
    (int)floor( ( lPriorMax - lPriorMin ) *  mPriority );

  pthread_attr_setschedparam( &lThreadAttribute, &lThreadScheduleParameters );

  if ( ( lError = pthread_attr_setscope(&lThreadAttribute, mScope) ) != 0 ) {
    throw CKErrNoException( __FILE__, __LINE__, lError );
  }

  if ( (lError = pthread_create( &mThread,
                                 &lThreadAttribute,
                                 CKFWThread::threadFunction,
                                 this) ) == 0 ) {
    if ( mIsDetachable ) {
      pthread_detach( mThread );
    }

    pthread_attr_destroy( &lThreadAttribute );
  }
  else {
    throw CKErrNoException( __FILE__, __LINE__, lError );
  }

  return lReturnCode;
}
开发者ID:drbobbeaty,项目名称:CKit,代码行数:56,代码来源:CKFWThread.cpp


示例17: startThread

int startThread(Thread * thrd)
{
	struct sched_param schedp;
	pthread_condattr_t condattr;
	int retc, policy, inherit;

	printf("Start thread priority %d\n", thrd->priority);
	if (pthread_attr_init(&(thrd->attr)) != 0) {
		printf("Attr init failed");
		exit(2);
	}
	thrd->flags = 0;
	memset(&schedp, 0, sizeof(schedp));
	schedp.sched_priority = thrd->priority;
	policy = thrd->policy;

	if (pthread_attr_setschedpolicy(&(thrd->attr), policy) != 0) {
		printf("Can't set policy %d\n", policy);
	}
	if (pthread_attr_getschedpolicy(&(thrd->attr), &policy) != 0) {
		printf("Can't get policy\n");
	} else {
		printf("Policy in attribs is %d\n", policy);
	}
	if (pthread_attr_setschedparam(&(thrd->attr), &schedp) != 0) {
		printf("Can't set params");
	}
	if (pthread_attr_getschedparam(&(thrd->attr), &schedp) != 0) {
		printf("Can't get params");
	} else {
		printf("Priority in attribs is %d\n", schedp.sched_priority);
	}
	if (pthread_attr_setinheritsched(&(thrd->attr), PTHREAD_EXPLICIT_SCHED)
	    != 0) {
		printf("Can't set inheritsched\n");
	}
	if (pthread_attr_getinheritsched(&(thrd->attr), &inherit) != 0) {
		printf("Can't get inheritsched\n");
	} else {
		printf("inherit sched in attribs is %d\n", inherit);
	}
	if ((retc = pthread_mutex_init(&(thrd->mutex), NULL)) != 0) {
		printf("Failed to init mutex: %d\n", retc);
	}
	if (pthread_condattr_init(&condattr) != 0) {
		printf("Failed to init condattr\n");
	}
	if (pthread_cond_init(&(thrd->cond), &condattr) != 0) {
		printf("Failed to init cond\n");
	}
	retc =
	    pthread_create(&(thrd->pthread), &(thrd->attr), thrd->func, thrd);
	printf("Create returns %d\n\n", retc);
	return retc;
}
开发者ID:kraj,项目名称:ltp,代码行数:55,代码来源:testpi-3.c


示例18: warnx

int UavcanServers::start(uavcan::INode &main_node)
{
	if (_instance != nullptr) {
		warnx("Already started");
		return -1;
	}

	/*
	 * Node init
	 */
	_instance = new UavcanServers(main_node);

	if (_instance == nullptr) {
		warnx("Out of memory");
		return -2;
	}

	int rv  = _instance->init();

	if (rv < 0) {
		warnx("Node init failed: %d", rv);
		delete _instance;
		_instance = nullptr;
		return rv;
	}

	/*
	 * Start the thread. Normally it should never exit.
	 */
	pthread_attr_t tattr;
	struct sched_param param;

	pthread_attr_init(&tattr);
	(void)pthread_attr_getschedparam(&tattr, &param);
	tattr.stacksize = PX4_STACK_ADJUSTED(StackSize);
	param.sched_priority = Priority;
	if (pthread_attr_setschedparam(&tattr, &param)) {
		warnx("setting sched params failed");
	}

	static auto run_trampoline = [](void *) {return UavcanServers::_instance->run(_instance);};

	rv = pthread_create(&_instance->_subnode_thread, &tattr, static_cast<pthread_startroutine_t>(run_trampoline), NULL);

	if (rv != 0) {
		rv = -rv;
		warnx("pthread_create() failed: %d", rv);
		delete _instance;
		_instance = nullptr;
	}

	return rv;
}
开发者ID:ButterZone,项目名称:Firmware,代码行数:53,代码来源:uavcan_servers.cpp


示例19: _runner

CThread::CThread(IRunnable *runner) :
		_runner(runner), _mutex(), _cond(),	_tid(0), _tattr(), _tpoli(0),
		_tparm(), _running(false), _finished(false), _canceled(false)
{
	int e;
	if ((e = pthread_attr_init(&_tattr)) != 0)
		throw XThread(e);
	if ((e = pthread_attr_getschedpolicy(&_tattr, &_tpoli)) != 0)
		throw XThread(e);
	if ((e = pthread_attr_getschedparam(&_tattr, &_tparm)) != 0)
		throw XThread(e);
}
开发者ID:freesamael,项目名称:wolf,代码行数:12,代码来源:CThread.cpp


示例20: XThread

/**
 * Get current priority setting.
 */
int CThread::priority()
{
	if (isRunning()) {
		int e;
		if ((e = pthread_getschedparam(_tid, &_tpoli, &_tparm)) != 0)
			throw XThread(e);
	} else {
		int e;
		if ((e = pthread_attr_getschedparam(&_tattr, &_tparm)) != 0)
			throw XThread(e);
	}
	return _tparm.sched_priority;
}
开发者ID:freesamael,项目名称:wolf,代码行数:16,代码来源:CThread.cpp



注:本文中的pthread_attr_getschedparam函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ pthread_attr_getstack函数代码示例发布时间:2022-05-30
下一篇:
C++ pthread_attr_destroy函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap