четверг, 18 сентября 2014 г.

[prog.question] Хорошее ли это название для C++ библиотеки: cppinlocks?

Возвращаясь к недавней теме. Нужно решить одну из самых сложных проблем в программировании: выбрать хорошее название для идентификатора :) В данном случае название самого верхнего пространства имен для маленького проекта, в котором будут собраны самодельные реализации спинлоков (с использованием только средств из стандартной библиотеки C++11).

Пока лучшее, что удалось придумать -- это cppinlocks.

Другой вариант, который, правда, нравится меньше, cppspins.

В общем, очень нужна помощь общественности :)

Upd. По итогам прений ;) библиотека пока живет под именем spinlockspp.

PS. Сейчас код spinlock-ов лежит внутри кода SObjectizer. Нужно выделить его в отдельный подпроект. Но не столько для того, чтобы развивать дальше (я так понял, что в случае spinlock-ов каждый сам себе велосипедит, кто во что горазд). А для того, чтобы тесты spinlock-ов не приходилось гонять при полном билде SObjectizer. Ну и чтобы можно было где-то отдельно разместить бенчмарки. Кстати говоря, кто-нибудь может указать на готовые бенчмарки для примитивов синхронизации, которые можно заточить под себя?

PPS. Много положительных эмоций получил от обсуждения темы нужности такой библиотеки на LOR-е. Узнал про себя много интересного, анонимные тимлиды-эксперты жгут напалмом :) Полезный сухой остаток: указали на мой просчет в реализации простого спинлока. Вместо более эффективного алгоритма test-test-and-set у меня был задействован test-and-set. Тут явное следствие моей некомпетентности. Скопипастил кусок из документации к std::atomic_flag. Хотя на алгоритм ttas, как выяснилось, мне в свое время указывали. Но почему-то я не переделал реализацию spinlock_t на более оптимальную. Переделаю уже в cppinlocks.

Комментариев нет: