<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to feature-requests</title><link href="https://sourceforge.net/p/state-threads/feature-requests/" rel="alternate"/><link href="https://sourceforge.net/p/state-threads/feature-requests/feed.atom" rel="self"/><id>https://sourceforge.net/p/state-threads/feature-requests/</id><updated>2009-05-14T00:14:21Z</updated><subtitle>Recent changes to feature-requests</subtitle><entry><title>Make state threads, pthread-safe</title><link href="https://sourceforge.net/p/state-threads/feature-requests/4/" rel="alternate"/><published>2009-05-14T00:14:21Z</published><updated>2009-05-14T00:14:21Z</updated><author><name>MarkD @ SF</name><uri>https://sourceforge.net/u/markd-at-sf/</uri></author><id>https://sourceforge.nete2f7fa1b6fdca9dbd7233a84a7c7271a4a8ba6af</id><summary type="html">&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;</summary></entry><entry><title>Define a version number in st.h to aid portability</title><link href="https://sourceforge.net/p/state-threads/feature-requests/3/" rel="alternate"/><published>2007-09-18T04:31:58Z</published><updated>2007-09-18T04:31:58Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.net77f4016906d2c1f41036c1ff0f36e84cd198004e</id><summary type="html">&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;</summary></entry><entry><title>Can we have a st_readv_resid()?</title><link href="https://sourceforge.net/p/state-threads/feature-requests/2/" rel="alternate"/><published>2006-08-11T15:11:29Z</published><updated>2006-08-11T15:11:29Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.netc0a7b43c2de089c8777d56ad248526a9badd1a4e</id><summary type="html">&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;</summary></entry><entry><title>Can we have an st_writev_resid()?</title><link href="https://sourceforge.net/p/state-threads/feature-requests/1/" rel="alternate"/><published>2006-08-10T21:58:44Z</published><updated>2006-08-10T21:58:44Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.neta5f33f05a56d810c5992212a29b8349ea3d2f1b9</id><summary type="html">&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;</summary></entry></feed>