>You do understand how the ixemul build process >works, right? (considering you've been >releasing many new versions of ixemul you >really ought to know...)
No, i dont know how script file work in such complex build script as ixemul do.
that was one reason wy i use mos source, because the MOS build script work also on crosscompile with very small changes.
I spend btw much time to break not MOS build, so a MOS version from this seem too possible easy.
files that i cant use from MOS i name as _68k.c
>ixemul is so complex it is very hard to see how >you can break it with substle changes. It for >sure is not meant to be changed by >inexperienced coder.
i think it is also possible to change SDL to use pthreads same as unix version.
but i think pthread programs need no amigatasks and so it cant very bad debug a task, because AOS show only 1 task.
So i change ixemul the added code is very simple.only problem is that it must add in more places.
So it is possible that i forget a function.but i have security code add, so this func can detect easy when see stack backtrace and do not crash whole amiga.
here is what i do.
when a amigatask in sdl is create ) open ixemul.library is done.this create a valid ixemul struct.(also on old ixemul
BTW: MOS ixemul source read always on open ixemul call wbstartup message, this fail on programs start from workbench that use vfork command.i fix that.
then a new entry i add in userdata.
u_parent_userdata is set to parent process.this is the main process and when a sdl subtask create another sdl subtask this use too corrrect main task.
now in functions that do file io is that code need to get correct file handle for amiga tasks.
if (u.u_parent_userdata)f = u.u_parent_userdata->u_ofile[fd];
else f = u.u_ofile[fd];
vfork do not set u_parent_userdata, so all work as before and newer versions are 100% compatible.
same code is need for mem allocater, that correct mempool is used.
it is also possible if code use no errno setting or signalling to do this.
if (u.u_parent_userdata)u_ptr=u.u_parent_userdata;
that ixemul is full thread safe can see easy, when create more sdl tasks and do a printf to stdout or stderr
ixemul is the only lib that dont mix text of diffrent tasks in 1 line.
that missing IO functions can easy find i add in open this code.
if (u.u_parent_userdata){u.u_ofile[fd] = 0xdeadbeef;}
>If you think ixemul somehow makes this any >easier you're seriously misguided.
maybe, but as far i see, there is no 100% thread save Unix library on amiga.
in the past was activity in netscape done, a unstable version come, but because of errors that nobody find, it is give up i think, and this version get never stable because random thread problems.
but with a god thread safe ixmemul core and amiga tasks also in pthread, i think it is possible to find Problems or get no instability