diff options
| -rw-r--r-- | lib/sharder.ml | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/sharder.ml b/lib/sharder.ml index 27b3b41..1deae72 100644 --- a/lib/sharder.ml +++ b/lib/sharder.ml @@ -263,15 +263,16 @@ let start ?count token = let rec ev_loop t = let (read, _) = t.shard.pipe in Pipe.read read - >>= fun frame -> - (match parse frame with + >>| fun frame -> + let _ = match parse frame with | Some f -> begin handle_frame ~f t.shard - >>| fun shard -> + >>> fun shard -> t.shard <- shard; - t end - | None -> recreate t.shard) + | None -> t.shard <- recreate t.shard; + in + t >>= fun t -> List.iter ~f:(fun f -> f t.shard) t.binds; ev_loop t |