Am 03.05.2021 um 13:42 schrieb Bonita Montero:
>>>> Der Effekt der exec*-Funktionen ist, ein neues Programm im aktuellen
>>>> Prozeß auszuführen. Möchte man das neue Programm parallell zum
>>>> ursprünglichen laufen haben, dann braucht es dafür seinen eigenen
>>>> Prozeß. Dh man muß vor dem exec einen forken.
>>> Wer denkt sich so eine kranke Scheiße aus?
>
>> Jeder der kein Windows erschaffen will.
>
> Die Kernel-APIs von Windows sind Posix melentweit überlegen, lediglich
> ineffizient implementiert.
Ah, Mr. Know-it-all mal wieder.
> Wenn ich sowas wie Signale und Forking schon
> seh, da krieg ich die Krätze. Das ist doch ein API-Sammelsurium, das
> Leute über Jahrzehnte ergänzt haben ohne, dass das den Eindruck macht,
> aus einem Guss zu sein.
Dann reden wir mal darüber, wie man unter Windows Threads erzeugt.
_beginthreadex, bittewas?
> Ich hab z.B. mal eine portable Semaphor-Klasse für Windows und Unix
> geschrieben und musste feststellen, dass die Union semun mit der man
> semctl versorgt (SysV-Semaphoren) nicht in irgendeinem Header defi-
> niert ist, sondern man die selbst definierten muss. Wer denkt solch
> eine kranke Scheiße aus ?
Historisch gewachsen.
Die Kernel-APIs von Windows sind halt auch nur solange geil, wie man
sich nicht um Performance schert. Ja toll, Windows hat Semaphore und
Mutex als Kernelobjekt, kann man mit WaitForMultipleObjects drauf
warten! Scheiß Linux, da geht das nicht! Bis man dann mal feststellt,
das Kernelobjekte halt langsam sind, man viel lieber CRITICAL_SECTION
nutzt. Und schwupps ist man da, wo man unter Unix schon lange ist: bei
einem Userspace-Dingsi, was halt leider mit
select^WaitForMultipleObjects inkompatibel ist.
A propos WaitForMultipleObjects. Mehr als 64 Events wäre schon irgendwie
knorke? Mit poll() kein Ding...
Stefan