Well, after the patch-hack-or whatever on VirtualQuery, AutoCAD2000 began coming alive ! Some problems yet, but one wonders me in particular : setting window version as win98 or winnt40, app shows an exception stating that CreateFiber function is not implemented; setting as win95 the apps starts quite well. Any idea ? Is there some plan to implement xxxxxFiber functions, or it's too difficult ? BTW, looking for help on the net, i haven't really understood the difference between a regular thread and a fiber (only caught that use of fibers instead of threads is somehow discouraged...)
Regards
Max
Max a écrit :
Well, after the patch-hack-or whatever on VirtualQuery, AutoCAD2000 began coming alive ! Some problems yet, but one wonders me in particular : setting window version as win98 or winnt40, app shows an exception stating that CreateFiber function is not implemented; setting as win95 the apps starts quite well. Any idea ? Is there some plan to implement xxxxxFiber functions, or it's too difficult ?
no real plans so far. IMO, writting the fiber functions by itself doesn't seem too complicated (mainly coroutines, and a couples of setjmp/longjmp should do the trick) we may have a bit more trouble trying to set up the same layout for the TEB (NT_TIB) as requested (mostly because two APIs for fibers are actually macros directly accessing the TEB)
BTW, looking for help on the net, i haven't really understood the difference between a regular thread and a fiber (only caught that use of fibers instead of threads is somehow discouraged...)
there are differences : - threads scheduling is done by the scheduler, while the programmer has to manually ask for a fiber schedule (in old computer science terms, you could see fibers as coroutines) - on a SMP system, different threads can actually execute in //, while fibers won't (at least the ones attached to the same thread)
A+
Hmmmm... what's a TEB (or NT_TIB) ??? :-) Btw, I did understand at least why it works setting "win95" as windows version In win95 there aren't fibers in kernel, so they're in a single (short !) dll named W95FIBER.DLL, and wine loads id in win95 mode.... I think I'll take a look at it too :-)
Little question... where can I find some info to understand unix page protection schemes ? Need it to look deeper in VirtualQuery functions, it seems to me there's some bug there
Alle 20:23, mercoledì 17 luglio 2002, Eric Pouech ha scritto:
Max a écrit :
Well, after the patch-hack-or whatever on VirtualQuery, AutoCAD2000 began coming alive ! Some problems yet, but one wonders me in particular : setting window version as win98 or winnt40, app shows an exception stating that CreateFiber function is not implemented; setting as win95 the apps starts quite well. Any idea ? Is there some plan to implement xxxxxFiber functions, or it's too difficult ?
no real plans so far. IMO, writting the fiber functions by itself doesn't seem too complicated (mainly coroutines, and a couples of setjmp/longjmp should do the trick) we may have a bit more trouble trying to set up the same layout for the TEB (NT_TIB) as requested (mostly because two APIs for fibers are actually macros directly accessing the TEB)
BTW, looking for help on the net, i haven't really understood the difference between a regular thread and a fiber (only caught that use of fibers instead of threads is somehow discouraged...)
there are differences :
- threads scheduling is done by the scheduler, while the programmer has
to manually ask for a fiber schedule (in old computer science terms, you could see fibers as coroutines)
- on a SMP system, different threads can actually execute in //, while
fibers won't (at least the ones attached to the same thread)
A+
Max a écrit :
Hmmmm... what's a TEB (or NT_TIB) ??? :-)
TEB: Thread execution block... it's the descriptor of any running thread in the system (see include/thread.h) on NT, the TEB starts with a thread information block
Little question... where can I find some info to understand unix page protection schemes ? Need it to look deeper in VirtualQuery functions, it seems to me there's some bug there
man mmap ? but imo that's more linked to the way we load the executable and it's a bit more tricky than pure page protection issues A+
Alle 21:40, giovedì 18 luglio 2002, Eric Pouech ha scritto:
TEB: Thread execution block... it's the descriptor of any running thread in the system (see include/thread.h) on NT, the TEB starts with a thread information block
so if I did understand, in NT fibers are mapped to threads descriptors directly.... I guess in win95 the w95fiber.dll does it in some other way, as it seems work, at least for fibers used in Autocad... For now I think I'll be happy with it and try to solve other problems for acad :-)
Little question... where can I find some info to understand unix page protection schemes ? Need it to look deeper in VirtualQuery functions, it seems to me there's some bug there
man mmap ? but imo that's more linked to the way we load the executable and it's a bit more tricky than pure page protection issues A+
I supposed too... my patch tricks apps in believing that the page protection is different, but I know it could engender many other problems.... I'll take a look at loader too, if it's not to hard
Thanx for answers !
Max