Butler::thread ()
try
{
+ start_of_thread ("Butler");
+
while (true) {
boost::mutex::scoped_lock lm (_mutex);
EncodeServerFinder::search_thread ()
try
{
+ start_of_thread ("EncodeServerFinder-search");
+
boost::system::error_code error;
boost::asio::io_service io_service;
boost::asio::ip::udp::socket socket (io_service);
void
EncodeServerFinder::listen_thread ()
try {
+ start_of_thread ("EncodeServerFinder-listen");
+
using namespace boost::asio::ip;
try {
Hints::thread ()
try
{
+ start_of_thread ("Hints");
+
auto film = _film.lock ();
if (!film) {
return;
J2KEncoder::encoder_thread (optional<EncodeServerDescription> server)
try
{
+ start_of_thread ("J2KEncoder");
+
if (server) {
LOG_TIMING ("start-encoder-thread thread=%1 server=%2", thread_id (), server->host_name ());
} else {
void
Job::run_wrapper ()
{
+ start_of_thread (String::compose("Job-%1", json_name()));
+
try {
run ();
void
JobManager::scheduler ()
{
+ start_of_thread ("JobManager");
+
while (true) {
boost::mutex::scoped_lock lm (_mutex);
return s;
}
+
+/* Set to 1 to print the IDs of some of our threads to stdout on creation */
+#define DCPOMATIC_DEBUG_THREADS 0
+
+#if DCPOMATIC_DEBUG_THREADS
+void
+start_of_thread (string name)
+{
+ std::cout << "THREAD:" << name << ":" << std::hex << pthread_self() << "\n";
+}
+#else
+void
+start_of_thread (string)
+{
+
+}
+#endif
extern dcp::DecryptedKDM decrypt_kdm_with_helpful_error (dcp::EncryptedKDM kdm);
extern boost::filesystem::path default_font_file ();
extern std::string to_upper (std::string s);
+extern void start_of_thread (std::string name);
template <class T>
std::list<T>
Writer::thread ()
try
{
+ start_of_thread ("Writer");
+
while (true)
{
boost::mutex::scoped_lock lock (_state_mutex);
GLVideoView::thread ()
try
{
+ start_of_thread ("GLVideoView");
+
{
boost::mutex::scoped_lock lm (_canvas_mutex);