[Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/module channelobject.c, 1.49, 1.50 flextype.c, 1.11, 1.12 scheduling.c, 1.99, 1.100 stacklessmodule.c, 1.173, 1.174
Christian Tismer
tismer at centera.de
Thu Jun 3 01:03:46 CEST 2004
- Previous message: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Python ceval.c, 1.87, 1.88 pythonrun.c, 1.21, 1.22
- Next message: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/unittests runAll.py, 1.3, 1.4 test_miscell.py, 1.4, 1.5 test_pickle.py, 1.10, 1.11 test_watchdog.py, 1.6, 1.7
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/slpdev/src/2.3/dev/Stackless/module
In directory centera.de:/tmp/cvs-serv3004/Stackless/module
Modified Files:
channelobject.c flextype.c scheduling.c stacklessmodule.c
Log Message:
Stackless 3.1 almost ready.
All tests are working, both Python and Stackless,
both soft and hard switching.
New features:
channels are working cross-thread!
Stack protection for eval_frame and pickling is complete.
A couple of smallish features are missing:
pickling of channels
refuse running tasklets from foreign threads
channel.transfer
scheduling strategy cross-thread
cframe pickling, get rid of invalid_exec funcs, instead use
the missing cframe owner-tasklet pointer!
add more tests!
Index: channelobject.c
===================================================================
RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/module/channelobject.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -C2 -d -r1.49 -r1.50
*** channelobject.c 24 May 2004 17:42:14 -0000 1.49
--- channelobject.c 2 Jun 2004 23:03:42 -0000 1.50
***************
*** 427,430 ****
--- 427,431 ----
if (interthread) {
/* interthread, always keep target! */
+ slp_current_insert(target);
}
else {
***************
*** 549,558 ****
klass, args);
STACKLESS_ASSERT();
! if (retval == NULL) {
goto err_exit;
}
- else if (STACKLESS_UNWINDING(retval)) {
- return retval;
- }
Py_INCREF(Py_None);
retval = Py_None;
--- 550,556 ----
klass, args);
STACKLESS_ASSERT();
! if (retval == NULL || STACKLESS_UNWINDING(retval)) {
goto err_exit;
}
Py_INCREF(Py_None);
retval = Py_None;
Index: flextype.c
===================================================================
RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/module/flextype.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** flextype.c 24 May 2004 01:01:20 -0000 1.11
--- flextype.c 2 Jun 2004 23:03:42 -0000 1.12
***************
*** 137,141 ****
reset_gc( (PyTypeObject *) type);
#endif
! if (bindmethods(&type->type.type)) {
Py_DECREF((PyObject *) type);
return NULL;
--- 137,141 ----
reset_gc( (PyTypeObject *) type);
#endif
! if (bindmethods((PyTypeObject *) type)) {
Py_DECREF((PyObject *) type);
return NULL;
Index: scheduling.c
===================================================================
RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/module/scheduling.c,v
retrieving revision 1.99
retrieving revision 1.100
diff -C2 -d -r1.99 -r1.100
*** scheduling.c 24 May 2004 23:36:20 -0000 1.99
--- scheduling.c 2 Jun 2004 23:03:42 -0000 1.100
***************
*** 381,385 ****
ts->exc_value = cf->ob2;
ts->exc_traceback = cf->ob3;
! cf->ob2 = cf->ob2 = cf->ob3 = NULL;
Py_DECREF(cf);
ts->frame = f;
--- 381,385 ----
ts->exc_value = cf->ob2;
ts->exc_traceback = cf->ob3;
! cf->ob1 = cf->ob2 = cf->ob3 = NULL;
Py_DECREF(cf);
ts->frame = f;
Index: stacklessmodule.c
===================================================================
RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/module/stacklessmodule.c,v
retrieving revision 1.173
retrieving revision 1.174
diff -C2 -d -r1.173 -r1.174
*** stacklessmodule.c 24 May 2004 01:45:38 -0000 1.173
--- stacklessmodule.c 2 Jun 2004 23:03:42 -0000 1.174
***************
*** 12,15 ****
--- 12,16 ----
#include "channelobject.h"
#include "pickling/prickelpit.h"
+ #include "core/stackless_methods.h"
/******************************************************
***************
*** 192,196 ****
ts->st.ticker = ts->st.interval;
current->flags.pending_irq = 1;
! /* no incref, just a flag */
return Py_None;
}
--- 193,197 ----
ts->st.ticker = ts->st.interval;
current->flags.pending_irq = 1;
! Py_INCREF(Py_None);
return Py_None;
}
***************
*** 198,204 ****
current->flags.pending_irq = 0;
- Py_INCREF(ts->st.main);
- slp_current_insert(ts->st.main);
-
return slp_schedule_task(ts->st.current, ts->st.main, 1);
}
--- 199,202 ----
***************
*** 955,958 ****
--- 953,966 ----
}
+ static int init_stackless_methods()
+ {
+ _stackless_method *p = _stackless_methtable;
+
+ for (; p->type != NULL; p++) {
+ ((signed char *) p->type)[p->offset] = -1;
+ }
+ return 0;
+ }
+
/* this one must be called very early, before modules are used */
***************
*** 961,964 ****
--- 969,973 ----
{
if (0
+ || init_stackless_methods()
|| init_cframetype()
|| init_flextype()
_______________________________________________
Stackless-checkins mailing list
Stackless-checkins at stackless.com
http://www.stackless.com/mailman/listinfo/stackless-checkins
- Previous message: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Python ceval.c, 1.87, 1.88 pythonrun.c, 1.21, 1.22
- Next message: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/unittests runAll.py, 1.3, 1.4 test_miscell.py, 1.4, 1.5 test_pickle.py, 1.10, 1.11 test_watchdog.py, 1.6, 1.7
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Stackless-checkins
mailing list