taskprocessor.c: Increase the number of tps_singletons container buckets.
authorRichard Mudgett <rmudgett@digium.com>
Tue, 16 Jan 2018 14:32:20 +0000 (08:32 -0600)
committerRichard Mudgett <rmudgett@digium.com>
Tue, 16 Jan 2018 18:42:06 +0000 (12:42 -0600)
Since v12 the number of taskprocessors in the system has increased a lot.
Small systems can easily have over a hundred and larger systems can have
thousands.

Most uses of the tps_singletons container deal with creating and
destroying the taskprocessors.  However, the pjsip distributor looks up
taskprocessors/serializers by name frequently.  It needs to find the
serializer for incoming SIP responses to distribute them to the
appropriate serializer.

Change-Id: Ice0603606614ba49f7c0c316c524735c064e7e43

main/taskprocessor.c

index 6793542..cf82eff 100644 (file)
@@ -112,7 +112,13 @@ struct ast_taskprocessor_listener {
        void *user_data;
 };
 
-#define TPS_MAX_BUCKETS 7
+#ifdef LOW_MEMORY
+#define TPS_MAX_BUCKETS 61
+#else
+/*! \brief Number of buckets in the tps_singletons container. */
+#define TPS_MAX_BUCKETS 1567
+#endif
+
 /*! \brief tps_singletons is the astobj2 container for taskprocessor singletons */
 static struct ao2_container *tps_singletons;