# xSemaphoreTake and xSemaphoreGive

**URL:** <https://forums.freertos.org/t/xsemaphoretake-and-xsemaphoregive/5070>\
**Category:** Kernel\
**Created:** [December 10, 2005, 4:01pm UTC](https://forums.freertos.org/t/xsemaphoretake-and-xsemaphoregive/5070 "2005-12-10T16:01:19Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![system](https://d2v6vdsk2p900z.cloudfront.net/original/1X/7fc8fdb729c645aab5b20282bbe34e57cb407be6.jpeg) [@system](https://forums.freertos.org/u/system)\
**Post date:** [December 10, 2005, 4:01pm UTC](https://forums.freertos.org/t/xsemaphoretake-and-xsemaphoregive/5070/1 "2005-12-10T16:01:19Z")

</div>

**nobody** wrote on [Saturday, December 10, 2005](https://sourceforge.net/p/freertos/discussion/382005/thread/e10b033a/#87aa):

&nbsp;&nbsp;&nbsp; xTaskCreate( vTestTask, "Task 1", configMINIMAL\_STACK\_SIZE, (void \*) &task1id,tskIDLE\_PRIORITY + 2, NULL );  
&nbsp;&nbsp;&nbsp; xTaskCreate( vTestTask, "Task 2", configMINIMAL\_STACK\_SIZE, (void \*) &task2id,tskIDLE\_PRIORITY + 2, NULL );  
&nbsp;&nbsp;&nbsp; xTaskCreate( vTestTask, "Task 3", configMINIMAL\_STACK\_SIZE, (void \*) &task3id,tskIDLE\_PRIORITY + 2, NULL );

static void vTestTask( void \*pvParameters )  
{  
&nbsp;&nbsp;&nbsp; int taskId;  
&nbsp;&nbsp;&nbsp; taskId = \*((int \*)pvParameters);  
&nbsp;&nbsp;&nbsp; while(1)  
&nbsp;&nbsp;&nbsp; {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gdb\_putc(1);  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( xSemaphoreTake( xSemaphore, 0 ) == pdTRUE&nbsp; )  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gdb\_putc(‘1’);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xSemaphoreGive( xSemaphore );

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }  
&nbsp;&nbsp;&nbsp; }  
}

I create 3 Tasks,but only task3 works.I want tasks to run one by on,How To Do?

---

<div class="post-metadata">

**Author:** ![system](https://d2v6vdsk2p900z.cloudfront.net/original/1X/7fc8fdb729c645aab5b20282bbe34e57cb407be6.jpeg) [@system](https://forums.freertos.org/u/system)\
**Post date:** [December 10, 2005, 4:32pm UTC](https://forums.freertos.org/t/xsemaphoretake-and-xsemaphoregive/5070/2 "2005-12-10T16:32:36Z")

</div>

**nobody** wrote on [Saturday, December 10, 2005](https://sourceforge.net/p/freertos/discussion/382005/thread/e10b033a/#87aa/8f2c):

You don’t really provide enough information to be able to give an answer.

How do you know only one task is running?  
Are you using the preeptive kernel?  
Which processor are you using?  
Where is the semaphore created?
