Neue Feature Anfrage: Multithreading?

Previous topic - Next topic

Sebe

Ich weiss Gernot, du hast viel zu tun.
Nur aus persönlichem Anlass wollte ich mal fragen, ob du eine Möglichkeit siehst Threading Funktionen einzubauen?
Quasi Funktionen, die Funktionen und Parameter der Funktionen als Parameter bekommen (Function Pointer) und diese Funktionen dann in einem seperaten Thread abarbeiten. Würde zwar wahrscheinlich mehr Sinn machen, wenn GLBasic das intern verteilen würde (z.B. Rendering, Kollisionen, Audio, etc.) aber fragen kostet ja bekanntlich nix :D

trucidare

MacBook Pro 2,2 GHz Core 2 Duo, 4 GB RAM, 160 GB HDD, 8600M GT
Core i3 - 3,07 GHz, 8 GB Ram, 2.5 TB HDD, Geforce GTX 260+ OC

Sebe

Danke trudicare, aber das ist ja bloss über das Inline C Feature und deckt die GLBasic Funktionen nicht ab. Damit kann man maximal irgendwelche anderen Berechnungen laufen lassen, aber nicht z.B. Kollisionen und Rendering in seperate Threads stecken.

trucidare

na klar geht das... guck dir das sub an... das wird über die inline funktion aufgerufen.
MacBook Pro 2,2 GHz Core 2 Duo, 4 GB RAM, 160 GB HDD, 8600M GT
Core i3 - 3,07 GHz, 8 GB Ram, 2.5 TB HDD, Geforce GTX 260+ OC

Sebe

QuoteDu solltest vermeiden GLBasic Befehle aufzurufen, da die sicher nicht MT safe sind.
Das ist ein Zitat von Gernot aus dem Thread.

trucidare

dann nimm doch sdl_thread... da gibs keine probleme ist einfach und schnell gemacht
MacBook Pro 2,2 GHz Core 2 Duo, 4 GB RAM, 160 GB HDD, 8600M GT
Core i3 - 3,07 GHz, 8 GB Ram, 2.5 TB HDD, Geforce GTX 260+ OC

Kitty Hello

Sebe meint: PRINT usw. sind nicht thread safe!
D.h., wenn Du PRINT machst, und mittendrin ein anderer Thread DRAWSPRITE macht, dann wird der Rest von Deinem Text mit der Texur vom DRAWSPRITE gezeichnet. Das macht keinen Spaß.
Wenn Multithreading, dann nur für Daten - und dann auch nur über Mutex/CriticalSection, damit man abgleichen kann, dass nicht beide Threads auf den gleichen Speicher zugreifen - da scheppert's sonst.