A good enough one isn't so bad. Here's an example concurrent collector that was used with the Inferno OS:
https://github.com/inferno-os/inferno-os/blob/master/libinte...
There's lots of room to improve it, but it worked well enough to run on telephony equipment in prod.