Christian Heimes added the comment:

Python 3.0 suffers from an problem with reinitialization but I can't
reproduce the bug with the release branch of 2.5. Python 2.6 also does
fine but leaks some references.

// reinit_test.c
#include "Python.h"
#define ROUNDS 5

int main(void) {
    int i;
    for (i=0; i < ROUNDS; i++) {
        printf("round %d\n", i+1);
        Py_Initialize();
        Py_Finalize();
    }

    return 0;
}

gcc -DNDEBUG -g -O2 -Wall -Wstrict-prototypes -IInclude -I. -pthread 
-Xlinker -lpthread -ldl  -lutil -lm -export-dynamic -o reinit_test
reinit_test.c libpython2.5.a 

Python 3.0
----------

./reinit_test
round 1
[23832 refs]
round 2
Fatal Python error: Py_Initialize: can't initialize sys standard streams
Traceback (most recent call last):
  File "/usr/local/lib/python3.0/encodings/__init__.py", line 32, in
<module>
    from . import aliases
ValueError: Cannot encode path item
Aborted

Python 2.6
----------

$ ./reinit_test
round 1
[7349 refs]
round 2
[7393 refs]
round 3
[7428 refs]
round 4
[7463 refs]
round 5
[7498 refs]

Python 2.5
----------
$ ./reinit_test
round 1
[7309 refs]
round 2
[7349 refs]
round 3
[7380 refs]
round 4
[7411 refs]
round 5
[7442 refs]

----------
keywords: +py3k
nosy: +tiran
priority:  -> normal
severity: urgent -> normal
versions: +Python 2.6, Python 3.0

__________________________________
Tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue1306>
__________________________________
_______________________________________________
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to