summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2010-12-28 18:45:06 +0100
committerJon Bergli Heier <snakebite@jvnv.net>2010-12-28 18:45:06 +0100
commit5fd3fe8704374d9ffc77e61d467e13a587d1aff9 (patch)
treeda97f9c160e4bfb55720912227b9a8e789955d38
parenta1ba5c60d8660751f2765c8ee2cd69453bcbe5f7 (diff)
Threaded io_service.
-rw-r--r--SConstruct7
-rw-r--r--main.cpp15
2 files changed, 17 insertions, 5 deletions
diff --git a/SConstruct b/SConstruct
index 75371ae..94a14d5 100644
--- a/SConstruct
+++ b/SConstruct
@@ -3,9 +3,10 @@ AddOption('--release', action = 'store_true')
env = Environment(CPPPATH = ['.'], CCFLAGS = ['-pthread'], LINKFLAGS = ['-pthread'])
conf = Configure(env)
-conf.CheckLib('boost_system')
-conf.CheckLib('boost_filesystem')
-conf.CheckLib('boost_regex')
+conf.CheckLib('boost_system-mt')
+conf.CheckLib('boost_filesystem-mt')
+conf.CheckLib('boost_regex-mt')
+conf.CheckLib('boost_thread-mt')
conf.CheckLib('mp3lame')
env = conf.Finish()
diff --git a/main.cpp b/main.cpp
index bb165a1..3827607 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,14 +1,25 @@
-#include <iostream>
#include "music.h"
#include "httpd.h"
+#include <iostream>
+#include <vector>
+
+#include <boost/thread.hpp>
+
int main(int argc, char **argv) {
try {
music::init(argv[1]);
boost::asio::io_service io_service;
HTTPServer httpd(io_service);
- io_service.run();
+ std::vector<boost::shared_ptr<boost::thread> > threads;
+ for(std::size_t i = 0; i < 10; i++) {
+ boost::shared_ptr<boost::thread> thread(new boost::thread(boost::bind(&boost::asio::io_service::run, &io_service)));
+ threads.push_back(thread);
+ }
+ for(std::size_t i = 0; i < 10; i++) {
+ threads[i]->join();
+ }
} catch(std::exception& e) {
std::cerr << e.what() << std::endl;
}