42
43 #if defined(unix) && !defined(PRODUCT)
44 #include "pthread.h"
45 #define THREAD_SELF ((THRTYPE)pthread_self())
46 #endif
47
48 #include "jni.h"
49 #include "defines.h"
50 #include "bytes.h"
51 #include "utils.h"
52 #include "coding.h"
53 #include "bands.h"
54
55 #include "constants.h"
56
57 #include "zip.h"
58
59 #include "unpack.h"
60
61
62 JNIEXPORT int JNICALL
63 main(int argc, char **argv) {
64 return unpacker::run(argc, argv);
65 }
66
67 // Single-threaded, implementation, not reentrant.
68 // Includes a weak error check against MT access.
69 #ifndef THREAD_SELF
70 #define THREAD_SELF ((THRTYPE) 0)
71 #endif
72 NOT_PRODUCT(static THRTYPE uThread = -1;)
73
74 unpacker* unpacker::non_mt_current = null;
75 unpacker* unpacker::current() {
76 //assert(uThread == THREAD_SELF);
77 return non_mt_current;
78 }
79 static void set_current_unpacker(unpacker* u) {
80 unpacker::non_mt_current = u;
81 assert(((uThread = (u == null) ? (THRTYPE) -1 : THREAD_SELF),
82 true));
|
42
43 #if defined(unix) && !defined(PRODUCT)
44 #include "pthread.h"
45 #define THREAD_SELF ((THRTYPE)pthread_self())
46 #endif
47
48 #include "jni.h"
49 #include "defines.h"
50 #include "bytes.h"
51 #include "utils.h"
52 #include "coding.h"
53 #include "bands.h"
54
55 #include "constants.h"
56
57 #include "zip.h"
58
59 #include "unpack.h"
60
61
62 JNIEXPORT int
63 main(int argc, char **argv) {
64 return unpacker::run(argc, argv);
65 }
66
67 // Single-threaded, implementation, not reentrant.
68 // Includes a weak error check against MT access.
69 #ifndef THREAD_SELF
70 #define THREAD_SELF ((THRTYPE) 0)
71 #endif
72 NOT_PRODUCT(static THRTYPE uThread = -1;)
73
74 unpacker* unpacker::non_mt_current = null;
75 unpacker* unpacker::current() {
76 //assert(uThread == THREAD_SELF);
77 return non_mt_current;
78 }
79 static void set_current_unpacker(unpacker* u) {
80 unpacker::non_mt_current = u;
81 assert(((uThread = (u == null) ? (THRTYPE) -1 : THREAD_SELF),
82 true));
|