summaryrefslogtreecommitdiff
path: root/amiga/schedule.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2008-09-09 06:25:22 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2008-09-09 06:25:22 +0000
commitf78ed949267f7fcc65243c4778f5adf1496b73e8 (patch)
tree12861a9faac1cf24164cc5d5ef27cdccdf7f60a2 /amiga/schedule.c
parentc6ac553d3d45bc390ccfdd0b41907d29818e4219 (diff)
downloadnetsurf-f78ed949267f7fcc65243c4778f5adf1496b73e8.tar.gz
netsurf-f78ed949267f7fcc65243c4778f5adf1496b73e8.tar.bz2
Disabled the new scheduler by default as it is more unstable than I thought :(
Defining AMI_SCHEDULER_USES_TIMER will enable it again. svn path=/trunk/netsurf/; revision=5291
Diffstat (limited to 'amiga/schedule.c')
-rwxr-xr-xamiga/schedule.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/amiga/schedule.c b/amiga/schedule.c
index 8843c013b..4c80d9227 100755
--- a/amiga/schedule.c
+++ b/amiga/schedule.c
@@ -39,8 +39,15 @@ void schedule(int t, void (*callback)(void *p), void *p)
struct timeval tv;
obj = AddObject(schedule_list,AMINS_CALLBACK);
+ if(!obj) return;
+
obj->objstruct_size = sizeof(struct nscallback);
obj->objstruct = AllocVec(obj->objstruct_size,MEMF_CLEAR);
+ if(!obj->objstruct)
+ {
+ DelObject(obj);
+ return;
+ }
nscb = (struct nscallback *)obj->objstruct;
@@ -55,15 +62,16 @@ void schedule(int t, void (*callback)(void *p), void *p)
GetSysTime(&tv);
AddTime(&nscb->tv,&tv); // now contains time when event occurs
-
- nscb->treq = AllocVec(sizeof(struct timerequest),MEMF_CLEAR);
-
- *nscb->treq = *tioreq;
- nscb->treq->tr_node.io_Command=TR_ADDREQUEST;
- nscb->treq->tr_time.tv_sec=nscb->tv.tv_sec; // secs
- nscb->treq->tr_time.tv_micro=nscb->tv.tv_micro; // micro
- SendIO((struct IORequest *)nscb->treq);
-
+#ifdef AMI_SCHEDULER_USES_TIMER
+ if(nscb->treq = AllocVec(sizeof(struct timerequest),MEMF_CLEAR))
+ {
+ *nscb->treq = *tioreq;
+ nscb->treq->tr_node.io_Command=TR_ADDREQUEST;
+ nscb->treq->tr_time.tv_sec=nscb->tv.tv_sec; // secs
+ nscb->treq->tr_time.tv_micro=nscb->tv.tv_micro; // micro
+ SendIO((struct IORequest *)nscb->treq);
+ }
+#endif
nscb->callback = callback;
nscb->p = p;
}
@@ -147,7 +155,7 @@ void ami_remove_timer_event(struct nscallback *nscb)
if(nscb->treq)
{
- if(CheckIO((struct IORequest *)nscb->treq)==0)
+ if(CheckIO((struct IORequest *)nscb->treq)==NULL)
AbortIO((struct IORequest *)nscb->treq);
WaitIO((struct IORequest *)nscb->treq);