aboutsummaryrefslogtreecommitdiff
path: root/pdoctave_dataframe.c
diff options
context:
space:
mode:
authorFranz Zotter <fzotter@users.sourceforge.net>2006-03-25 13:14:59 +0000
committerFranz Zotter <fzotter@users.sourceforge.net>2006-03-25 13:14:59 +0000
commit6b079b5df20a90500294e2f1a58912b32074cd82 (patch)
tree23bdb7515ac1a6ae6343bf1a85904057ea396388 /pdoctave_dataframe.c
parent47979e4af5ff135984a22d5ecb6ef7acb69f6f0f (diff)
changed a lot: pdoctave_dataframe: sleepUntil changed. Doesn't work yet, perhaps will not work that way. Looking for a suitable solution...
pdoctave.c: starting octave when loading lib. removed the pdoctave object. Started general chaos... svn path=/trunk/externals/iem/pdoctave/; revision=4766
Diffstat (limited to 'pdoctave_dataframe.c')
-rw-r--r--pdoctave_dataframe.c35
1 files changed, 34 insertions, 1 deletions
diff --git a/pdoctave_dataframe.c b/pdoctave_dataframe.c
index 7193c62..1ff6f09 100644
--- a/pdoctave_dataframe.c
+++ b/pdoctave_dataframe.c
@@ -1,4 +1,5 @@
#include "pdoctave_dataframe.h"
+static int scheduling_ok = 1;
SharedDataFrame *newSharedDataFrame ()
{
@@ -203,6 +204,38 @@ void blockForWriting (SharedDataFrame *sdf)
if (sdf)
sdf->block_for_write = 1;
}
+
+int sleepUntilReadUnBlocked (SharedDataFrame *sdf)
+{
+ alarm(MAX_SLEEP_TIME);
+ while ((sdf->block_for_read!=0)&&scheduling_ok)
+ sched_yield();
+ return scheduling_ok;
+}
+
+int sleepUntilReadBlocked (SharedDataFrame *sdf)
+{
+ alarm(MAX_SLEEP_TIME);
+ while ((sdf->block_for_read==0)&&scheduling_ok)
+ sched_yield();
+ return scheduling_ok;
+}
+
+int sleepUntilWriteUnBlocked (SharedDataFrame *sdf)
+{
+ alarm(MAX_SLEEP_TIME);
+ while ((sdf->block_for_write!=0)&&scheduling_ok)
+ sched_yield();
+ return scheduling_ok;
+}
+int sleepUntilWriteBlocked (SharedDataFrame *sdf)
+{
+ alarm(MAX_SLEEP_TIME);
+ while ((sdf->block_for_write==0)&&scheduling_ok)
+ sched_yield();
+ return scheduling_ok;
+}
+/*
void sleepUntilReadUnBlocked (SharedDataFrame *sdf, int usleep_time)
{
int timer = 0;
@@ -246,4 +279,4 @@ void sleepUntilWriteBlocked (SharedDataFrame *sdf, int usleep_time)
}
}
-
+ */