<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to feature-requests</title><link>https://sourceforge.net/p/state-threads/feature-requests/</link><description>Recent changes to feature-requests</description><atom:link href="https://sourceforge.net/p/state-threads/feature-requests/feed.rss" rel="self"/><language>en</language><lastBuildDate>Thu, 14 May 2009 00:14:21 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/state-threads/feature-requests/feed.rss" rel="self" type="application/rss+xml"/><item><title>Make state threads, pthread-safe</title><link>https://sourceforge.net/p/state-threads/feature-requests/4/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;While state threads makes it easy to write high performance programs, to take advantage of modern CPUs with many cores, you are forced to fork processes and used shared memory to share state. It would be good if state thread was made pthread safe so that state-threads "state" could be managed on a per-pthread basis.&lt;/p&gt;
&lt;p&gt;This change should be fairly simple entailing the following:&lt;/p&gt;
&lt;p&gt;1) Encapsulate of st statics into a single struct, call it sts&lt;br /&gt;
2) Change all the base functions to pass sts as param1 and thus refer to their state via the param1 pointer&lt;br /&gt;
3) Convert existing public functions into wrapper functions that refer to a per-process sts&lt;br /&gt;
4) Expose new public functions with sts as the first param&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">MarkD @ SF</dc:creator><pubDate>Thu, 14 May 2009 00:14:21 -0000</pubDate><guid>https://sourceforge.nete2f7fa1b6fdca9dbd7233a84a7c7271a4a8ba6af</guid></item><item><title>Define a version number in st.h to aid portability</title><link>https://sourceforge.net/p/state-threads/feature-requests/3/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;With the introduction of new functions in 1.8, it is hard to write portable code that works for both 1.8 and earlier versions of st.&lt;/p&gt;
&lt;p&gt;It would be helpful if st.h included some sort of #define of the version so that portable code could be written like this:&lt;/p&gt;
&lt;p&gt;#if STVERSION &amp;gt;= 1.8&lt;br /&gt;
st_set_eventsys(ST_EVENTSYS_ALT);&lt;br /&gt;
#endif&lt;/p&gt;
&lt;p&gt;st_init();&lt;/p&gt;
&lt;p&gt;etc.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anonymous</dc:creator><pubDate>Tue, 18 Sep 2007 04:31:58 -0000</pubDate><guid>https://sourceforge.net77f4016906d2c1f41036c1ff0f36e84cd198004e</guid></item><item><title>Can we have a st_readv_resid()?</title><link>https://sourceforge.net/p/state-threads/feature-requests/2/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Scatter reads and gather writes provide a great opportunity to avoid &lt;br /&gt;
excess data movement within a high throughput daemon.  Unfortunately &lt;br /&gt;
the current st_ interfaces require that all reads and writes needs to be &lt;br /&gt;
marshalled into as a contiguous piece of memory.&lt;/p&gt;
&lt;p&gt;On a particular daemon I'm working on, profiling is showing that most of &lt;br /&gt;
the user-space CPU is in memory movement and allocation which is &lt;br /&gt;
almost entirely as a consequence of this marshalling need.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anonymous</dc:creator><pubDate>Fri, 11 Aug 2006 15:11:29 -0000</pubDate><guid>https://sourceforge.netc0a7b43c2de089c8777d56ad248526a9badd1a4e</guid></item><item><title>Can we have an st_writev_resid()?</title><link>https://sourceforge.net/p/state-threads/feature-requests/1/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;If a st_thread is managing more than one socket it not's possible to use &lt;br /&gt;
st_writev() with a zero timeout since partial write are likely.&lt;/p&gt;
&lt;p&gt;The OS returns the bytes written from the underlying writev() so &lt;br /&gt;
presumably calculating a resid would be relatively easy.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anonymous</dc:creator><pubDate>Thu, 10 Aug 2006 21:58:44 -0000</pubDate><guid>https://sourceforge.neta5f33f05a56d810c5992212a29b8349ea3d2f1b9</guid></item></channel></rss>