Comment22
Речь идет о том, что когда некоторая часть кода библиотеке начнет работать в отдельной нити, клиентский код может конфликтовать с кодом библиотеки. Например возможна ситуация, когда пользователь помещает сообщение в очередь, а библиотека удаляет сообщение из очереди в это время. Здесь нужно использовать какой-то из способов синхронизации потоков, например conditional variables.
Требование заключается в том, что пользовательский код не должен меняться в зависимости от того работает библиотека синхронно или в отдельной нити. Хотя например место, где библиотека инициируется и т.п. может меняться, это не в счет, т.к. оно одно.