The delay would consume 100% of a single core - presumably you have a dual-core processor?
Replace your delay with:
usleep( 90000 ) ; // 90ms
You need to #include <unistd.h>
for usleep()
.
This will suspend the thread for 90ms rather than busy wait.