aboutsummaryrefslogtreecommitdiff
path: root/pdoctave_dataframe.c
diff options
context:
space:
mode:
Diffstat (limited to 'pdoctave_dataframe.c')
-rw-r--r--pdoctave_dataframe.c50
1 files changed, 29 insertions, 21 deletions
diff --git a/pdoctave_dataframe.c b/pdoctave_dataframe.c
index a5d64a6..89d4455 100644
--- a/pdoctave_dataframe.c
+++ b/pdoctave_dataframe.c
@@ -1,5 +1,5 @@
#include "pdoctave_dataframe.h"
-static int scheduling_ok = 1;
+//static int scheduling_ok = 1;
SharedDataFrame *newSharedDataFrame ()
{
@@ -207,40 +207,48 @@ void blockForWriting (SharedDataFrame *sdf)
int sleepUntilReadUnBlocked (SharedDataFrame *sdf)
{
- //alarm(MAX_SLEEP_TIME);
- while ((sdf->block_for_read!=0)&&scheduling_ok)
- sched_yield();
- return scheduling_ok;
+ int elapsed_time=0;
+ while ((sdf->block_for_read!=0)&&(elapsed_time<MAX_USLEEP_TIME)) {
+ elapsed_time += STD_USLEEP_TIME;
+ usleep(STD_USLEEP_TIME);
+ }
+ return (elapsed_time<MAX_USLEEP_TIME);
}
int sleepUntilReadBlocked (SharedDataFrame *sdf)
{
- //alarm(MAX_SLEEP_TIME);
- while ((sdf->block_for_read==0)&&scheduling_ok)
- sched_yield();
- return scheduling_ok;
+ int elapsed_time=0;
+ while ((sdf->block_for_read==0)&&(elapsed_time<MAX_USLEEP_TIME)) {
+ elapsed_time += STD_USLEEP_TIME;
+ usleep(STD_USLEEP_TIME);
+ }
+ return (elapsed_time<MAX_USLEEP_TIME);
}
int sleepUntilWriteUnBlocked (SharedDataFrame *sdf)
{
- //alarm(MAX_SLEEP_TIME);
- while ((sdf->block_for_write!=0)&&scheduling_ok)
- sched_yield();
- return scheduling_ok;
+ int elapsed_time=0;
+ while ((sdf->block_for_write!=0)&&(elapsed_time<MAX_USLEEP_TIME)) {
+ elapsed_time += STD_USLEEP_TIME;
+ usleep(STD_USLEEP_TIME);
+ }
+ return (elapsed_time<MAX_USLEEP_TIME);
}
int sleepUntilWriteBlocked (SharedDataFrame *sdf)
{
- //alarm(MAX_SLEEP_TIME);
- while ((sdf->block_for_write==0)&&scheduling_ok)
- sched_yield();
- return scheduling_ok;
+ int elapsed_time=0;
+ while ((sdf->block_for_write==0)&&(elapsed_time<MAX_USLEEP_TIME)) {
+ elapsed_time += STD_USLEEP_TIME;
+ usleep(STD_USLEEP_TIME);
+ }
+ return (elapsed_time<MAX_USLEEP_TIME);
}
/*
void sleepUntilReadUnBlocked (SharedDataFrame *sdf, int usleep_time)
{
int timer = 0;
if (sdf) {
- while ((sdf->block_for_read!=0)&&(timer < MAX_SLEEP_TIME)) {
+ while ((sdf->block_for_read!=0)&&(timer < MAX_USLEEP_TIME)) {
timer += usleep_time;
usleep (usleep_time);
}
@@ -250,7 +258,7 @@ void sleepUntilReadBlocked (SharedDataFrame *sdf, int usleep_time)
{
int timer = 0;
if (sdf) {
- while ((sdf->block_for_read==0)&&(timer < MAX_SLEEP_TIME)) {
+ while ((sdf->block_for_read==0)&&(timer < MAX_USLEEP_TIME)) {
timer +=usleep_time;
usleep (usleep_time);
}
@@ -261,7 +269,7 @@ void sleepUntilWriteUnBlocked (SharedDataFrame *sdf, int usleep_time)
{
int timer = 0;
if (sdf) {
- while ((sdf->block_for_write!=0)&&(timer < MAX_SLEEP_TIME)) {
+ while ((sdf->block_for_write!=0)&&(timer < MAX_USLEEP_TIME)) {
timer +=usleep_time;
usleep (usleep_time);
}
@@ -272,7 +280,7 @@ void sleepUntilWriteBlocked (SharedDataFrame *sdf, int usleep_time)
{
int timer = 0;
if (sdf) {
- while ((sdf->block_for_write==0)&&(timer < MAX_SLEEP_TIME)) {
+ while ((sdf->block_for_write==0)&&(timer < MAX_USLEEP_TIME)) {
timer +=usleep_time;
usleep (usleep_time);
}