diff options
author | Franz Zotter <fzotter@users.sourceforge.net> | 2006-03-25 13:14:59 +0000 |
---|---|---|
committer | Franz Zotter <fzotter@users.sourceforge.net> | 2006-03-25 13:14:59 +0000 |
commit | 6b079b5df20a90500294e2f1a58912b32074cd82 (patch) | |
tree | 23bdb7515ac1a6ae6343bf1a85904057ea396388 /pdoctave_dataframe.c | |
parent | 47979e4af5ff135984a22d5ecb6ef7acb69f6f0f (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.c | 35 |
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) } } - + */ |