You could just use Instant bullets. When the gun is fired move the bullet object from the tip of the gun and forward one unit at a time and check for collision. When the bullet hits you can exit the loop and continue the main game loop. This is actually faster than it might sound, even if you are using a machine gun, because a machine doesn't shot every frame.
pseudocode:
Do
REM MAIN GAME LOOP
REM .....
If bulletfired=true
Repeat
move bullet one unit
until collision=true
REM make some bullet effect
endif
Sync
Loop

Not up yet --> http://thecyborg.sytes.net/