X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gio%2Fgthreadedsocketservice.c;h=f18238c17987eea028ed4b55795b617a0f925664;hb=cea9de93c8838099661f5b54462f9c4b6410bfc9;hp=83b75fe714c788cf0d5447d09e28703b7799b3fc;hpb=d8ca6404229e5b64d2bf2e1a3660ad9fe7feefdd;p=platform%2Fupstream%2Fglib.git diff --git a/gio/gthreadedsocketservice.c b/gio/gthreadedsocketservice.c index 83b75fe..f18238c 100644 --- a/gio/gthreadedsocketservice.c +++ b/gio/gthreadedsocketservice.c @@ -14,34 +14,33 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General - * Public License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307, USA. + * Public License along with this library; if not, see . * * Authors: Ryan Lortie * Alexander Larsson */ /** - * SECTION: gthreadedsocketservice + * SECTION:gthreadedsocketservice * @title: GThreadedSocketService * @short_description: A threaded GSocketService + * @include: gio/gio.h * @see_also: #GSocketService. * * A #GThreadedSocketService is a simple subclass of #GSocketService * that handles incoming connections by creating a worker thread and - * dispatching the connection to it by emitting the ::run signal in - * the new thread. + * dispatching the connection to it by emitting the + * #GThreadedSocketService::run signal in the new thread. * * The signal handler may perform blocking IO and need not return * until the connection is closed. * * The service is implemented using a thread pool, so there is a - * limited amount of threads availible to serve incomming requests. + * limited amount of threads available to serve incoming requests. * The service automatically stops the #GSocketService from accepting * new connections when all threads are busy. * - * As with #GSocketService, you may connect to #GThreadedSocketService:run, + * As with #GSocketService, you may connect to #GThreadedSocketService::run, * or subclass and override the default handler. */ @@ -50,14 +49,18 @@ #include "gthreadedsocketservice.h" #include "glibintl.h" -#include "gio-marshal.h" - +struct _GThreadedSocketServicePrivate +{ + GThreadPool *thread_pool; + int max_threads; + gint job_count; +}; static guint g_threaded_socket_service_run_signal; -G_DEFINE_TYPE (GThreadedSocketService, - g_threaded_socket_service, - G_TYPE_SOCKET_SERVICE); +G_DEFINE_TYPE_WITH_PRIVATE (GThreadedSocketService, + g_threaded_socket_service, + G_TYPE_SOCKET_SERVICE) enum { @@ -65,16 +68,8 @@ enum PROP_MAX_THREADS }; - G_LOCK_DEFINE_STATIC(job_count); -struct _GThreadedSocketServicePrivate -{ - GThreadPool *thread_pool; - int max_threads; - gint job_count; -}; - typedef struct { GThreadedSocketService *service; @@ -138,9 +133,7 @@ g_threaded_socket_service_incoming (GSocketService *service, static void g_threaded_socket_service_init (GThreadedSocketService *service) { - service->priv = G_TYPE_INSTANCE_GET_PRIVATE (service, - G_TYPE_THREADED_SOCKET_SERVICE, - GThreadedSocketServicePrivate); + service->priv = g_threaded_socket_service_get_instance_private (service); service->priv->max_threads = 10; } @@ -214,8 +207,6 @@ g_threaded_socket_service_class_init (GThreadedSocketServiceClass *class) GObjectClass *gobject_class = G_OBJECT_CLASS (class); GSocketServiceClass *ss_class = &class->parent_class; - g_type_class_add_private (class, sizeof (GThreadedSocketServicePrivate)); - gobject_class->constructed = g_threaded_socket_service_constructed; gobject_class->finalize = g_threaded_socket_service_finalize; gobject_class->set_property = g_threaded_socket_service_set_property; @@ -234,13 +225,13 @@ g_threaded_socket_service_class_init (GThreadedSocketServiceClass *class) * @connection and may perform blocking IO. The signal handler need * not return until the connection is closed. * - * Returns: %TRUE to stope further signal handlers from being called + * Returns: %TRUE to stop further signal handlers from being called */ g_threaded_socket_service_run_signal = g_signal_new ("run", G_TYPE_FROM_CLASS (class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GThreadedSocketServiceClass, run), g_signal_accumulator_true_handled, NULL, - _gio_marshal_BOOLEAN__OBJECT_OBJECT, G_TYPE_BOOLEAN, + NULL, G_TYPE_BOOLEAN, 2, G_TYPE_SOCKET_CONNECTION, G_TYPE_OBJECT); g_object_class_install_property (gobject_class, PROP_MAX_THREADS, @@ -259,7 +250,7 @@ g_threaded_socket_service_class_init (GThreadedSocketServiceClass *class) * handling incoming clients, -1 means no limit * * Creates a new #GThreadedSocketService with no listeners. Listeners - * must be added with g_socket_service_add_listeners(). + * must be added with one of the #GSocketListener "add" methods. * * Returns: a new #GSocketService. *