… | |
… | |
178 | =over 4 |
178 | =over 4 |
179 | |
179 | |
180 | =item (OS-) threads are never released |
180 | =item (OS-) threads are never released |
181 | |
181 | |
182 | At the moment, threads that were created once will never be freed. They |
182 | At the moment, threads that were created once will never be freed. They |
183 | will be reused for asynchronous requests, though, so a slong as you limit |
183 | will be reused for asynchronous requests, though, so as long as you limit |
184 | the maximum number of concurrent asynchronous tasks, this will also limit |
184 | the maximum number of concurrent asynchronous tasks, this will also limit |
185 | the maximum number of threads created. |
185 | the maximum number of threads created. |
186 | |
186 | |
|
|
187 | The idle threads are not necessarily using a lot of resources: on |
|
|
188 | GNU/Linux + glibc, each thread takes about 8KiB of userspace memory + |
|
|
189 | whatever the kernel needs (probably less than 8KiB). |
|
|
190 | |
187 | Future versions will likely lift this limitation. |
191 | Future versions will likely lift this limitation. |
188 | |
192 | |
189 | =item AnyEvent is initalised at module load time |
193 | =item AnyEvent is initalised at module load time |
190 | |
194 | |
191 | AnyEvent is initialised on module load, as opposed to at a later time. |
195 | AnyEvent is initialised on module load, as opposed to at a later time. |