Usleep function.... Google! Best place to find your answer! Le jeu. 3 sept. 2020 à 09:52, Niresh <nireshshara...@gmail.com> a écrit :
> Thank you, Like you said sleep(1/2) won't work, then how to give a sleep > of 500ms. > > Regards, > NK > > On Thu, Sep 3, 2020 at 1:19 PM Micka <mickamus...@gmail.com> wrote: > >> It's not the best place to discuss this topic here ..... >> >> have a look here: >> >> >> https://stackoverflow.com/questions/6460542/performance-of-pthread-mutex-lock-unlock >> >> >> On Thu, Sep 3, 2020 at 9:46 AM Niresh <nireshshara...@gmail.com> wrote: >> >>> >>> Sorry I did not finish the thing and got posted accidentally >>> For example, I have two thread sharing a global shared memory variable >>> as below. The variable shmPtr->status is protected with mutex lock in both >>> the function. Though there is a sleep(1/2) between mutex lock inside "for >>> loop" in the task1 function , I could not access the shmPtr->status in >>> task2 when required and have to wait until "for loop" exit in the task1 >>> function, this takes around 50 seconds to take control of shmPtr->status by >>> the task2 function. >>> >>> I am wondering why the task1 function is not releasing the mutex lock >>> even with an sleep(1/2). >>> >>> thr_id1 = pthread_create ( &p_thread1, NULL, (void *)execution_task1, >>> NULL ); >>> thr_id2 = pthread_create ( &p_thread2, NULL, (void *)execution_task2, >>> NULL ); >>> >>> void execution_task1() >>> { >>> for(int i = 0;i < 100;i++) >>> { >>> //100 lines of application code running here >>> pthread_mutex_lock(&lock); >>> shmPtr->status = 1; //shared memory variable >>> pthread_mutex_unlock(&lock); >>> sleep(1/2); >>> } >>> } >>> >>> void execution_task2() >>> { >>> //100 lines of application code running here >>> pthread_mutex_lock(&lock); >>> shmPtr->status = 0; //shared memory variable >>> pthread_mutex_unlock(&lock); >>> sleep(1/2); >>> } >>> >>> Regards, >>> NK >>> On Thursday, September 3, 2020 at 12:55:48 PM UTC+5:30 Niresh wrote: >>> >>>> Hi, >>>> >>>> I am using beagle Bone Black with debian image. Could any please >>>> suggest how to optimize the application code using pthread_mutex_lock. Let >>>> me describe the solution I am looking at. >>>> >>>> For example, I have two thread sharing a global shared memory variable >>>> as below >>>> >>>> thr_id1 = pthread_create ( &p_thread1, NULL, (void *)execution_task1, >>>> NULL ); >>>> thr_id2 = pthread_create ( &p_thread2, NULL, (void *)execution_task2, >>>> NULL ); >>>> >>>> void execution_task1() >>>> { >>>> >>>> for(int i = 0;i < 100;i++) >>>> { >>>> pthread_mutex_lock(&lock); >>>> shmPtr->status = 1; >>>> pthread_mutex_unlock(&lock); >>>> sleep(1/2); >>>> } >>>> } >>>> >>> -- >>> For more options, visit http://beagleboard.org/discuss >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "BeagleBoard" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to beagleboard+unsubscr...@googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/beagleboard/1d7fc600-e5da-4fbc-b26a-fa1f0c3a3514n%40googlegroups.com >>> <https://groups.google.com/d/msgid/beagleboard/1d7fc600-e5da-4fbc-b26a-fa1f0c3a3514n%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> For more options, visit http://beagleboard.org/discuss >> --- >> You received this message because you are subscribed to a topic in the >> Google Groups "BeagleBoard" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/beagleboard/-9GlXf8Y9ns/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> beagleboard+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/beagleboard/CAF%2BMRt%3DAQktRK_NgTmxFCvR3NVyudd9NBgwWTt7h-5Ub7ftk7w%40mail.gmail.com >> <https://groups.google.com/d/msgid/beagleboard/CAF%2BMRt%3DAQktRK_NgTmxFCvR3NVyudd9NBgwWTt7h-5Ub7ftk7w%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > For more options, visit http://beagleboard.org/discuss > --- > You received this message because you are subscribed to the Google Groups > "BeagleBoard" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to beagleboard+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/beagleboard/CAF7-PaRP26cZW_Gh947VdUv5NM7fm-1fzvZ0pD%3DhaqURZt_SsA%40mail.gmail.com > <https://groups.google.com/d/msgid/beagleboard/CAF7-PaRP26cZW_Gh947VdUv5NM7fm-1fzvZ0pD%3DhaqURZt_SsA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/beagleboard/CAF%2BMRtnwq5XLezGUA-26_3K2Vg_3ekWaRroqF0_Bwk%3Dx6Uct%2BQ%40mail.gmail.com.