Fred T-H avatar Fred T-H committed 3703cab

moving the ugly unlinking from the server to the client

Comments (0)

Files changed (2)

 %% Description: Removes a client's listener from a given user.
 %%--------------------------------------------------------------------
 disconnect(Id, HandlerId) ->
-    usr:unsubscribe(Id, HandlerId).
+    usr:unsubscribe(Id, HandlerId),
+    %% leftover link from the event manager. Total break of
+    %% encapsulation here, but is needed to deal with process pools.
+    unlink(global:whereis_name({manager,Id})).
 
 %%--------------------------------------------------------------------
 %% Function: message(From, To, Message) -> ok

src/web_server.erl

     Msgs = client:listen(Nick,Handler),
     JSON = mochijson2:encode([json_prepare(M) || M <- Msgs]),
     client:disconnect(Nick, Handler),
-    %% mochiweb uses a process pool. We work around that here. aack :(
-    unlink(global:whereis_name({manager,Nick})),
     reply(Req, JSON, Params);
 
 handle("/history", Req) ->
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.