<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Home</title><link>https://sourceforge.net/p/coopthreadpool/wiki/Home/</link><description>Recent changes to Home</description><atom:link href="https://sourceforge.net/p/coopthreadpool/wiki/Home/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 24 Jul 2013 06:11:54 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/coopthreadpool/wiki/Home/feed" rel="self" type="application/rss+xml"/><item><title>Discussion for Home page</title><link>https://sourceforge.net/p/coopthreadpool/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;ThreadPool is a project intended to provide a lightweight ThreadPool implementation, especially applicable in an embedded environment.&lt;/p&gt;
&lt;p&gt;ThreadPool class is a template, which must be provided with the type of class the ThreadPool threads are intended to be used with. Since C++ lacks a common "object" base class, this is mandatory.&lt;/p&gt;
&lt;p&gt;Consequently, you might have several ThreadPool instances for different types. &lt;/p&gt;
&lt;p&gt;The number of Threads can be configured using a secon template parameter as well. The ThreadPool Threads will not "leave" the ThreadPool, but instead remain within it. In order to assign a task to a Thread from then Pool, we have to provide a callback method together with an object reference.&lt;/p&gt;
&lt;p&gt;The Thread will then jump to the callback method, execute the code found there and finally return into the Pool.&lt;/p&gt;
&lt;p&gt;Threads in waiting condition are not suspended, but actively executing an "empty" Run method.&lt;/p&gt;
&lt;p&gt;This method checks if a callback address is provided or not.&lt;br /&gt;
If not, it continues looping through the Run method.&lt;br /&gt;
In order to reduce the overall system load as much as possible, the Run method executes a "Sleep(0)" call to signal the Scheduler it is done with it's assigned time slice.&lt;/p&gt;
&lt;p&gt;I tried to keep the project as System-neutral as possible, but since i started on Windows, i could not avoid to use some corresponding API calls.&lt;/p&gt;
&lt;p&gt;I intend to provide a linux based version as well as soon as possible.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">bieblsoft</dc:creator><pubDate>Wed, 24 Jul 2013 06:11:54 -0000</pubDate><guid>https://sourceforge.net6be8e9d0a3ab2ef2de7b622849a18bcb13a8a9af</guid></item><item><title>Home modified by bieblsoft</title><link>https://sourceforge.net/p/coopthreadpool/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Welcome to your wiki!&lt;/p&gt;
&lt;p&gt;This is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: &lt;span&gt;[SamplePage]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;The wiki uses &lt;a class="" href="/p/coopthreadpool/wiki/markdown_syntax/"&gt;Markdown&lt;/a&gt; syntax.&lt;/p&gt;
&lt;p&gt;&lt;h6&gt;Project Members:&lt;/h6&gt;
&lt;ul class="md-users-list"&gt;
&lt;li&gt;&lt;a href="/u/bieblsoft/"&gt;bieblsoft&lt;/a&gt; (admin)&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;&lt;span class="download-button-51ef6691f1fd8d38647bf5aa" style="margin-bottom: 1em; display: block;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">bieblsoft</dc:creator><pubDate>Wed, 24 Jul 2013 05:30:57 -0000</pubDate><guid>https://sourceforge.net90a83bd9e1656d451d599c2e45f0d4f3e8251688</guid></item></channel></rss>