Monday, November 08, 2010 at 12:05 AM.


on killUserThreads (username, ipaddress, randomstring, idthread) {
		<<8/15/10; 7:47:56 PM by DW
			<<Created. Kill threads waiting for the user on this ipaddress with this randomstring. Designed to be called from its own thread, so we aren't killing threads from within an rpc-handler.
	local (adrlongpolls = @system.temp.realtime.server.longpolls, i, adrtemp);
	for i = sizeof (adrlongpolls^) downto 1 {
		adrtemp = @adrlongpolls^ [i];
		try {
			if (adrtemp^.username == username) and (adrtemp^.ipaddress == ipaddress) and (adrtemp^.randomstring == randomstring) {
				local (id = adrtemp^.idthread);
				if id != idthread { //don't kill the thread that's starting up! :-)
					if thread.exists (id) {
						thread.kill (id)};
					delete (adrtemp)}}}}};
bundle { //test code
	killUserThreads ("davewiner", "", "kGEiL2HXqCZKVEI")}

This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.