Sending trigger each second fails

Hi! I’d like to look at latencies, so I wrote simple code for playing sound and sending the trigger each sec. But it works unexpectedly unsteady: I see triggers not always each sec, sometimes it varies from 1 to 4 secs.

mySound = sound.Sound('num/1.wav', secs=-1)
trigger = parallel.ParallelPort(address=0xC000)
event_clock = core.Clock()

for trial in range(0,100):  
    trigger.setData(0)
    event_clock.reset()
    mySound.play(when=ptb.GetSecs())
    trigger.setData(100)
    while event_clock.getTime() < 1.0:
        pass

Could anyone look at the code and correct me, please?