From 6b079b5df20a90500294e2f1a58912b32074cd82 Mon Sep 17 00:00:00 2001 From: Franz Zotter Date: Sat, 25 Mar 2006 13:14:59 +0000 Subject: 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 --- pdoctave_dataframe.c | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'pdoctave_dataframe.c') 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) } } - + */ -- cgit v1.2.1