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

C++ create_task函数代码示例

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

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



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

示例1: main

int main() {
 	TIL311 = 0x98;
 	
 	srand();
 	
 	sem_init(&lcd_sem);
	
	lcd_init();
	serial_start(SERIAL_SAFE);
	
	puts("Hello! Starting tasks.\n");
    
    enter_critical();
    
    create_task(&task_time,0);
    create_task(&task_echo,0);
  	create_task(&task_scroller,0);
    create_task(&task_wav_play,0);
    
  /*	for (int i = 0; i < 16; i++)
  		create_task(&breeder_task,0);*/
  		
  	leave_critical();
  	yield();  
  	
  	puts("Tasks started, main() returning.\n");	
  	
	return 0;
}
开发者ID:ZigZagJoe,项目名称:68k,代码行数:29,代码来源:wav_multi.c


示例2: timer_callback

volatile task_t* timer_callback(task_t *regs) {
	tick++;
	millis_from_boot += 1000 / timer_frequency;

	#ifdef DEBUG
		#ifdef TIMER_VERBOSE_TICKS
			kprintf("[%s : %d]\r\n", "Tick", tick);
		#endif
	#endif

	io_out8(0x20, 0x20); //重设时钟中断

	volatile task_t* oregs = regs;
	if (a) {
		create_task(regs, stb + 4096, taskb);
		create_task(regs, sta + 4096, taska);
		a = false;

		ptra = sta + 4096 - sizeof(task_t);
		ptrb = stb + 4096 - sizeof(task_t);

		oregs = ptra;

	} else if (!b) {
		ptra = regs;
		oregs = ptrb;
	} else {
		ptrb = regs;
		oregs = ptra;
	}
	b=!b;
//

	return oregs;
}
开发者ID:IcebergOS,项目名称:Cryst,代码行数:35,代码来源:timer.c


示例3: main

int main(void)
{
	unsigned int user_stacks[TASK_LIMIT][STACK_SIZE];
	unsigned int *usertasks[TASK_LIMIT];
	size_t task_count = 0;
	size_t current_task;

	task_init();

	print_str("OS: Starting...\n");
	print_str("OS: First create task 1\n");
	usertasks[0] = create_task(user_stacks[0], &task1_func);
	task_count += 1;
	print_str("OS: Back to OS, create task 2\n");
	usertasks[1] = create_task(user_stacks[1], &task2_func);
	task_count += 1;

	print_str("\nOS: Start round-robin scheduler!\n");

	/* SysTick configuration */
	*SYSTICK_LOAD = ( SystemCoreClock / TICK_RATE_HZ) - 1UL;
	*SYSTICK_VAL = 0;
	*SYSTICK_CTRL = 0x07;
	current_task = 0;

	while (1) {
		print_str("OS: Activate next task\n");
		usertasks[current_task] = activate(usertasks[current_task]);
		print_str("OS: Back to OS\n");

		current_task = current_task == (task_count - 1) ? 0 : current_task + 1;
	}

	return 0;
}
开发者ID:neojou,项目名称:mini-arm-os-1,代码行数:35,代码来源:main.cpp


示例4: main

int main(void) {
    
    if(init_kernel() != OK)
    {
        /* Memory allocation problems */
        while(1);
    }
    
    if(create_task( car_movement, 3000 ) != OK )
    {
        /* Memory allocation problems */
        while(1);
    }
    if (create_task(cruisecontrol, 3500 ) != OK )
    {
        /* Memory allocation problems */
        while(1);
    }
    if ((mbi=create_mailbox(1,sizeof(int))) == NULL) {
        /* Memory allocation problems */
        while (1);
    }
    if ((mbf=create_mailbox(1,sizeof(double))) == NULL) {
        /* Memory allocation problems */
        while (1);
    }
    
    run();
    
    
    return 0;
}
开发者ID:robinpipirs,项目名称:CSE2-RTOS-PROJECT,代码行数:32,代码来源:main.c


示例5: main

/********************************************************
                         MAIN
*********************************************************/
int main(void)
{
	int map[XMAX][YMAX], bmap[XMAX][YMAX][2];
	SPLAYER player;
	LPTCB task;
	
	floor_cnt = 1;
	init_genrand((unsigned long)time(NULL)); // 必ずmainに入れること
	init_task();
	init_monster();
	
	task = create_task(title_load, NULL, PRIO_00);
	task->p[0] = &player;
	task->p[1] = &floor_cnt;
	
	task = create_task(game_start, NULL, PRIO_00);
	task->p[0] = map;
	task->p[1] = &player;
	task->p[2] = bmap;
	
	loop_task();
	
//	printf("taskcnt =%d\n", count_task());
	
	return 0;
}
开发者ID:yoskhdia,项目名称:Racanhack-bcc,代码行数:29,代码来源:main.c


示例6: main

int main(void)
{
	unsigned int user_stacks[TASK_LIMIT][STACK_SIZE];
	unsigned int *usertasks[TASK_LIMIT];
	size_t task_count = 0;
	size_t current_task;

	usart_init();
	task_init();

	print_str("OS: Starting...\n");
	print_str("OS: First create task 1\n");
	usertasks[0] = create_task(user_stacks[0], &task1_func);
	task_count += 1;
	print_str("OS: Back to OS, create task 2\n");
	usertasks[1] = create_task(user_stacks[1], &task2_func);
	task_count += 1;

	print_str("\nOS: Start multitasking, back to OS till task yield!\n");
	current_task = 0;

	while (1) {
		print_str("OS: Activate next task\n");
		usertasks[current_task] = activate(usertasks[current_task]);
		print_str("OS: Back to OS\n");

		current_task = current_task == (task_count - 1) ? 0 : current_task + 1;
	}

	return 0;
}
开发者ID:jserv,项目名称:mini-arm-os,代码行数:31,代码来源:os.c


示例7: Init

static void Init(rtems_task_argument arg)
{
  test_context *ctx = &test_instance;

  TEST_BEGIN();

  ctx->low = rtems_task_self();

  create_task(&ctx->mid, 3);
  create_task(&ctx->high, 1);
  create_task(&ctx->inversion, 2);
  create_sema(&ctx->sem_a);
  create_sema(&ctx->sem_b);

  obtain_sema(ctx->sem_a);
  start_task(ctx->mid, mid_task);
  start_task(ctx->high, high_task);

  /*
   * Here we see that the priority of the high priority task blocked on
   * semaphore B propagated to the low priority task owning semaphore A
   * on which the owner of semaphore B depends.
   */
  assert_prio(ctx->low, 1);
  assert_prio(ctx->mid, 1);
  assert_prio(ctx->high, 1);
  assert_prio(ctx->inversion, 2);

  TEST_END();
  rtems_test_exit(0);
}
开发者ID:gedare,项目名称:rtems,代码行数:31,代码来源:init.c


示例8: initialize

static void initialize(int minor)
{
  console_tbl *ct = &Console_Port_Tbl [minor];
  uart_bridge_master_control *control = ct->pDeviceParams;
  intercom_type type = control->type;

  qoriq_intercom_service_install(type, uart_bridge_master_service, control);
  create_task('R', receive_task, control);
  control->transmit_task = create_task('T', transmit_task, control);
}
开发者ID:rtemss,项目名称:rtems,代码行数:10,代码来源:uart-bridge-master.c


示例9: main

int main(int argc, char** argv, char** envp) {
	if(argv[1]) {
		if(strcmp(argv[1], "-gui") == 0)
			create_task(tmain_gui);
		else if(strcmp(argv[1], "-text") == 0)
			create_task(tmain_text);
		else
			_exit(-1);
	}
}
开发者ID:WareX97,项目名称:K2,代码行数:10,代码来源:main.c


示例10: init_multitasking

void init_multitasking()
{
  asm volatile("cli");
  //memset((void*)(200*1024*1024),0,(40*1024*1024));
  kernel_proc = create_process("microkernel", 0, 1, 0);

  new_process = (uint32_t)kernel_proc;

  current_task = (uint32_t)create_task("initiating_task",tasking_initiator, 20, 0x202, kernel_proc);  //Scheduler initalization task
  old_task = current_task;

  Idle_task = create_task("System_idle_task",idle, 20, 0x202, kernel_proc);  //default task
  Activate_task_direct(Idle_task);

  Activate_task_direct(create_task("idle2",idle2, 10, 0x202, kernel_proc));
  Activate_task_direct(create_task("idle3",idle3, 10, 0x202, kernel_proc));
  Activate_task_direct(create_task("idle4",idle4, 10, 0x202, kernel_proc));
  Activate_task_direct(create_task("idle5",idle5, 10, 0x202, kernel_proc));
  Activate_task_direct(create_task("idle6",idle6, 10, 0x202, kernel_proc));
  //Activate_task_direct(create_task("Main_Kernel",kernel_main, 10, 0x202, kernel_proc));

  Shell_proc = create_process("Shell", 0, 1, kernel_proc);
  Activate_task_direct(create_task("Shell_Ostream", Console_Writer, 10, 0x202, Shell_proc));
  reached_bottom = 0;
  Scheduler_init(); // Let the FUN Begin :D Lets Switch from the old monotasking world to Multitasking World :D defined in tasking.asm
}
开发者ID:vinoh,项目名称:Aqeous,代码行数:26,代码来源:tasking.c


示例11: create_kernel_task

int create_kernel_task(tid_t* id, entry_point_t ep, void* args, uint8_t prio)
{
	if (prio > MAX_PRIO)
		prio = NORMAL_PRIO;

	return create_task(id, ep, args, prio, CORE_ID);
}
开发者ID:RWTH-OS,项目名称:HermitCore,代码行数:7,代码来源:tasks.c


示例12: dcs_statistics_init

dove_status dcs_statistics_init(char *pythonpath)
{
	dove_status status = DOVE_STATUS_OK;

	do
	{
		status = python_functions_init(pythonpath);
		if (status != DOVE_STATUS_OK)
		{
			break;
		}

		/* Initialize mutex and condition variable objects */
		if (pthread_mutex_init(&dps_statistics_mp, NULL) != 0) {
			status = DOVE_STATUS_INVALID_PARAMETER;
			break;
		}
		if (pthread_cond_init (&dps_statistics_cv, NULL) != 0) {
			status = DOVE_STATUS_INVALID_PARAMETER;
			break;
		}
		/* Create a thread for statistics collection */
		if (create_task((const char *)"Stat", 0, OSW_DEFAULT_STACK_SIZE,
		                dps_statistics_main, 0,
		                &statisticsTaskId) != OSW_OK)
		{
			status = DOVE_STATUS_THREAD_FAILED;
			break;
		}
	} while (0);

	return status;
}
开发者ID:bigclouds,项目名称:opendove,代码行数:33,代码来源:statistics.c


示例13: create_kernel_task_on_core

int create_kernel_task_on_core(tid_t* id, entry_point_t ep, void* args, uint8_t prio, uint32_t core_id)
{
	if (prio > MAX_PRIO)
		prio = NORMAL_PRIO;

	return create_task(id, ep, args, prio, core_id);
}
开发者ID:RWTH-OS,项目名称:HermitCore,代码行数:7,代码来源:tasks.c


示例14: stream_end

/**
 * All data has been delivered. Your implementation should now finish writing out sorted data and verbose info.
* The output stream will be closed for you after this call returns
*/
void stream_end() {
// do awesome stuff
// then print to outfile e.g.

	menqueue(NULL);
	//merge = 1;
	//create_task(NULL, 0, nitems);
    int i;
  	
    worker_funcs(NULL);
    for(i = 1; i < nthreads; i++){
    	pthread_join(tid[i], NULL);
    }
    merge = 1;
    //create_task(NULL, 0, nitems);
    for(i = 1; i < nthreads; i++){
  	pthread_create(&tid[i], NULL, worker_merge, NULL);
  }
  	create_task(NULL, 0, nitems);
  	worker_merge(NULL);
     for(i = 1; i < nthreads; i++){
    	pthread_join(tid[i], NULL);
    }
    
   for(int i = 0; i < nitems ;i++) 
     fprintf(outfile,"%d\n", data[i]);
     
   if(outfile != stdout) 
     fclose(outfile);
}
开发者ID:Yankkk,项目名称:C,代码行数:34,代码来源:streamingsort.c


示例15: dps_statistics_start

dove_status dps_statistics_start(void)
{
	dove_status status = DOVE_STATUS_OK;

	do
	{
		if (search_task("Stat") != 0)
		{
			log_info(PythonDataHandlerLogLevel, "Thread is running\r\n");
			break;
		}
		log_info(PythonDataHandlerLogLevel, "Starting thread\r\n");
		/* Re-initialize resources and create a thread */
		if (pthread_mutex_init(&dps_statistics_mp, NULL) != 0)
		{
			status = DOVE_STATUS_INVALID_PARAMETER;
			break;
		}
		if (pthread_cond_init (&dps_statistics_cv, NULL) != 0)
		{
			status = DOVE_STATUS_INVALID_PARAMETER;
			break;
		}
		if (create_task((const char *)"Stat", 0, OSW_DEFAULT_STACK_SIZE,
		                dps_statistics_main, 0,
		                &statisticsTaskId) != OSW_OK)
		{
			status = DOVE_STATUS_THREAD_FAILED;
			break;
		}

	} while (0);

	return status;
}
开发者ID:bigclouds,项目名称:opendove,代码行数:35,代码来源:statistics.c


示例16: TypeFace

	akj::tTAFHandle cFontLoader::CreateTexAtlasFont(
		tFaceHandle handle, uint32_t initial_size)
	{
		if(!handle.IsValid()) return tTAFHandle();
		FreeTypeFace& face = TypeFace(handle);
		cCreateTexAtlasTask create_task(face, initial_size);
		
		while(!create_task.IsDone()) create_task.DoWork();

		std::unique_ptr<cTexAtlasFont> taf(
			new cTexAtlasFont(face,
												std::unique_ptr<FreeTypeLibrary>(new FreeTypeLibrary),
												std::move(create_task.GetFinishedAtlas())));
		
		cArray<16, uint32_t> sizes = {14, 12, 21};
		for(uint32_t i: sizes)
		{
			if(i == initial_size) continue;
			cCreateTexAtlasTask create_task2(face, i);
			while(!create_task2.IsDone()) create_task2.DoWork();
			taf->AddAtlas(create_task2.GetFinishedAtlas());
		}
		taf->RepackAtlasTexture();

		return InsertTAF(std::move(taf));
	}
开发者ID:ProframFiles,项目名称:FancyDraw,代码行数:26,代码来源:akjFontLoader.cpp


示例17: rb_mtp_thread_set_device_name

void
rb_mtp_thread_set_device_name (RBMtpThread *thread, const char *name)
{
	RBMtpThreadTask *task = create_task (SET_DEVICE_NAME);
	task->name = g_strdup (name);
	queue_task (thread, task);
}
开发者ID:AdamZ,项目名称:rhythmbox-magnatune,代码行数:7,代码来源:rb-mtp-thread.c


示例18: create_task_21

static int create_task_21(starpu_data_handle_t dataA, unsigned k, unsigned j, unsigned reclevel)
{
	int ret;

	struct starpu_task *task = create_task(TAG21_AUX(k, j, reclevel));

	task->cl = &cl21;

	/* which sub-data is manipulated ? */
	task->handles[0] = starpu_data_get_sub_data(dataA, 2, k, k);
	task->handles[1] = starpu_data_get_sub_data(dataA, 2, k, j);

	if (j == k+1)
	{
		task->priority = STARPU_MAX_PRIO;
	}

	/* enforce dependencies ... */
	if (k > 0)
	{
		starpu_tag_declare_deps(TAG21_AUX(k, j, reclevel), 2, TAG11_AUX(k, reclevel), TAG22_AUX(k-1, k, j, reclevel));
	}
	else
	{
		starpu_tag_declare_deps(TAG21_AUX(k, j, reclevel), 1, TAG11_AUX(k, reclevel));
	}

	int n = starpu_matrix_get_nx(task->handles[0]);
	task->flops = FLOPS_STRSM(n, n);

	ret = starpu_task_submit(task);
	if (ret != -ENODEV) STARPU_CHECK_RETURN_VALUE(ret, "starpu_task_submit");
	return ret;
}
开发者ID:joao-lima,项目名称:starpu-1.2.0rc2,代码行数:34,代码来源:cholesky_grain_tag.c


示例19: create_task_11

static struct starpu_task * create_task_11(starpu_data_handle_t dataA, unsigned k)
{
/*	FPRINTF(stdout, "task 11 k = %d TAG = %llx\n", k, (TAG11(k))); */

	struct starpu_task *task = create_task(TAG11(k));

	task->cl = &cl11;

	/* which sub-data is manipulated ? */
	task->handles[0] = starpu_data_get_sub_data(dataA, 2, k, k);

	/* this is an important task */
	if (!noprio)
		task->priority = STARPU_MAX_PRIO;

	/* enforce dependencies ... */
	if (k > 0)
	{
		starpu_tag_declare_deps(TAG11(k), 1, TAG22(k-1, k, k));
	}

	int n = starpu_matrix_get_nx(task->handles[0]);
	task->flops = FLOPS_SPOTRF(n);

	return task;
}
开发者ID:excess-project,项目名称:starpu-ex-1.2.0rc5,代码行数:26,代码来源:cholesky_tag.c


示例20: error

void Directory::refresh() {
  need_update = false;
  refresh_timer.restart();
  if (uri.isEmpty()) {
    emit error(tr("Address is empty"));
    return;
  }
  if (Special_uri(uri).name() == Special_uri::mounts) { //mounting of unmounted volume was requested
    //uri is something like "places/mounts/42"
    int id = uri.split("/").last().toInt();
    QList<Gio_volume*> volumes = core->get_mount_manager()->get_volumes();
    if (id < 0 || id >= volumes.count()) {
      emit error(tr("Invalid volume id"));
      return;
    }
    GVolume* volume = volumes.at(id)->get_gvolume();
    interrupt_gio_operation();
    gcancellable = g_cancellable_new();
    async_result_type = async_result_mount_volume;
    g_volume_mount(volume, GMountMountFlags(), 0, gcancellable, async_result, this);
    return;
  }

  create_task(uri);
}
开发者ID:Riateche,项目名称:ridual,代码行数:25,代码来源:Directory.cpp



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
C++ create_temp_file函数代码示例发布时间:2022-05-30
下一篇:
C++ create_table函数代码示例发布时间: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