Changes
1 changed files (+12/-1)
-
-
@@ -139,9 +139,16 @@ std.log.debug("Releasing stale responses...", .{});self.responses_mutex.lock(); var iter = self.responses.iterator(); while (iter.next()) |entry| { std.log.debug("Releasing response handler for request ID={}...", .{entry.key_ptr.*}); if (entry.value_ptr.*.data) |data| { self.allocator.free(data); } // Emptying the data then set ResetEvent, to notify listeners that this handler // should be discarded. entry.value_ptr.*.data = null; entry.value_ptr.*.wrote.set(); } self.responses.deinit(); self.responses_mutex.unlock();
-
@@ -157,6 +164,10 @@ pub fn newRequestId(self: *Connection) i64 {return self.rng.random().int(i64); } pub const RequestError = error{ CanceledOrOutOfMemory, }; pub fn request(self: *Connection, request_id: i64, message: []u8) ![]const u8 { var wrote = std.Thread.ResetEvent{}; var response = Response{
-
@@ -180,7 +191,7 @@ try self.ws.writeBin(message);wrote.wait(); return response.data orelse return std.mem.Allocator.Error.OutOfMemory; return response.data orelse return RequestError.CanceledOrOutOfMemory; } };
-