Remix.run Logo
▲ darkwi11ow 3 hours ago

You can do this in many other interpreted languages like Python interpreter when running with --pdb flag will do the same. I imagine CL does this by default when running code in interpreted mode and omits the behaviour for compiled (production) binaries.

▲frollogaston 3 hours ago | parent | next [-]

Yeah but what happens to your server then? The connection it was handling times out I guess, then is the rest of it frozen or what?

▲rmunn 3 hours ago | parent [-]

I mean, that entirely depends on the server design. Is it running one connection per process? One connection per thread? Presumably you've designed the server in a way that one slow connection doesn't block other connections from being handled fast, which means that this one connection whose handler went into the debugger is just now a really, really slow connection taking minutes (or hours!) to handle, but the other connections are running just fine.

Now, if your entire server is taken down because one connection threw an exception, that's bad design. But pretty much no major language works that way. All of them allow you to set things up so that an exception handling connection A won't affect connection B. And if you've done that in Common Lisp, then connection A halting and waiting for the debugger won't affect connection B either.

▲Jtsummers 3 hours ago | parent | prev [-]

In CL, this works with compiled code.