File tree Expand file tree Collapse file tree 3 files changed +10
-4
lines changed Expand file tree Collapse file tree 3 files changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -10,9 +10,9 @@ Tasklets
1010
1111.. c :function :: PyTaskletObject *PyTasklet_New (PyTypeObject *type, PyObject *func)
1212
13- Return a new tasklet object. *type * must be derived from :c:type: `PyTasklet_Type `
14- or * NULL *. *func * must be a callable object (normal use-case) or *NULL*, if the
15- tasklet is being used via capture() .
13+ Return a new tasklet object. *type * must be derived from :c:type: `PyTasklet_Type `
14+ or `` NULL ``. *func * must be a callable object or `` NULL `` or :c:macro: ` Py_None `. If * func *
15+ is `` NULL `` or :c:macro: ` Py_None ` you must set it later with :c:func: ` PyTasklet_BindEx ` .
1616
1717.. todo: in the case where NULL is returned and slp_ensure_linkage fails no
1818 exception is set, which is in contrast elsewhere in the function.
Original file line number Diff line number Diff line change @@ -9,6 +9,9 @@ What's New in Stackless 3.X.X?
99
1010*Release date: 20XX-XX-XX*
1111
12+ - https://bitbucket.org/stackless-dev/stackless/issues/129
13+ C-API: Calling PyTasklet_New( NULL, ...) no longer crashes.
14+
1215- https://bitbucket.org/stackless-dev/stackless/issues/128
1316 Fix pickling of the module 'stackless'.
1417
Original file line number Diff line number Diff line change @@ -216,11 +216,14 @@ tasklet_dealloc(PyTaskletObject *t)
216216PyTaskletObject *
217217PyTasklet_New (PyTypeObject * type , PyObject * func )
218218{
219+ if (type == NULL ) {
220+ type = & PyTasklet_Type ;
221+ }
219222 if (!PyType_IsSubtype (type , & PyTasklet_Type )) {
220223 PyErr_SetNone (PyExc_TypeError );
221224 return NULL ;
222225 }
223- if (func )
226+ if (func && func != Py_None )
224227 return (PyTaskletObject * )PyObject_CallFunctionObjArgs ((PyObject * )type , func , NULL );
225228 else
226229 return (PyTaskletObject * )PyObject_CallFunction ((PyObject * )type , NULL );
You can’t perform that action at this time.
0 commit comments