Parallel and concurrent design has become paramount to achieving good performance in the era of multi-socket and multi-core architectures. Thread pools often play a crucial role in system software but finding the right number of threads is a tedious task, which often falls on the users to fine-tune this parameter. The best setting is not only different per application, but can also vary with the workload. We believe this decision should be made at the level of the operating system and offered as a service to benefit from metrics the kernel collects on the application performance. In this paper, we present a first step towards this vision in the form of a self-adaptive thread pool which uses OS-metrics to automatically control the optimal number of threads over time.