diff --git a/src/fuzzers/DawnWireServerFuzzer.cpp b/src/fuzzers/DawnWireServerFuzzer.cpp
index 81be868..1a70f18 100644
--- a/src/fuzzers/DawnWireServerFuzzer.cpp
+++ b/src/fuzzers/DawnWireServerFuzzer.cpp
@@ -50,6 +50,8 @@
     std::string sInjectedErrorTestcaseOutDir;
     uint64_t sOutputFileNumber = 0;
 
+    bool sCommandsComplete = false;
+
     WGPUSwapChain ErrorDeviceCreateSwapChain(WGPUDevice device,
                                              WGPUSurface surface,
                                              const WGPUSwapChainDescriptor*) {
@@ -59,6 +61,10 @@
         return sOriginalDeviceCreateSwapChain(device, surface, &desc);
     }
 
+    void CommandsCompleteCallback(WGPUFenceCompletionStatus status, void* userdata) {
+        sCommandsComplete = true;
+    }
+
 }  // namespace
 
 int DawnWireServerFuzzer::Initialize(int* argc, char*** argv) {
@@ -156,7 +162,8 @@
         wgpu::Queue queue = device.GetDefaultQueue();
         wgpu::Fence fence = queue.CreateFence();
         queue.Signal(fence, 1u);
-        while (fence.GetCompletedValue() != 1u) {
+        fence.OnCompletion(1u, CommandsCompleteCallback, 0);
+        while (!sCommandsComplete) {
             device.Tick();
             utils::USleep(100);
         }
