Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/vlc
  • chouquette/vlc
  • bakiewicz.marek122/vlc
  • devnexen/vlc
  • rohanrajpal/vlc
  • blurrrb/vlc
  • gsoc/gsoc2019/darkapex/vlc
  • b1ue/vlc
  • fkuehne/vlc
  • magsoft/vlc
  • chub/vlc
  • cramiro9/vlc
  • robUx4/vlc
  • rom1v/vlc
  • akshayaky/vlc
  • tmk907/vlc
  • akymaster/vlc
  • govind.sharma/vlc
  • psilokos/vlc
  • xjbeta/vlc
  • jahan/vlc
  • 1480c1/vlc
  • amanchande/vlc
  • aaqib/vlc
  • rist/vlc
  • apol/vlc
  • mindfreeze/vlc
  • alexandre-janniaux/vlc
  • sandsmark/vlc
  • jagannatharjun/vlc
  • gsoc/gsoc2020/matiaslgonzalez/vlc
  • gsoc/gsoc2020/jagannatharjun/vlc
  • mstorsjo/vlc
  • gsoc/gsoc2020/vedenta/vlc
  • gsoc/gsoc2020/arnav-ishaan/vlc
  • gsoc/gsoc2020/andreduong/vlc
  • fuzun/vlc
  • gsoc/gsoc2020/vatsin/vlc
  • gsoc/gsoc2020/sagid/vlc
  • yaron/vlc
  • Phoenix/vlc
  • Garf/vlc
  • ePiratWorkarounds/vlc
  • tguillem/vlc
  • jnqnfe/vlc
  • mdc/vlc
  • Vedaa/vlc
  • rasa/vlc
  • quink/vlc
  • yealo/vlc
  • aleksey_ak/vlc
  • ePirat/vlc
  • ilya.yanok/vlc
  • asenat/vlc
  • m/vlc
  • bunjee/vlc
  • BLumia/vlc
  • sagudev/vlc
  • hamedmonji30/vlc
  • nullgemm/vlc
  • DivyamAhuja/vlc
  • thesamesam/vlc
  • dag7/vlc
  • snehil101/vlc
  • haasn/vlc
  • jbk/vlc
  • ValZapod/vlc
  • mfkl/vlc
  • WangChuan/vlc
  • core1024/vlc
  • GhostVaibhav/vlc
  • dfuhrmann/vlc
  • davide.prade/vlc
  • tmatth/vlc
  • Courmisch/vlc
  • zouya/vlc
  • hpi/vlc
  • EwoutH/vlc
  • aleung27/vlc
  • hengwu0/vlc
  • saladin/vlc
  • ashuio/vlc
  • richselwood/vlc
  • verma16Ayush/vlc
  • chemicalflash/vlc
  • PoignardAzur/vlc
  • huangjieNT/vlc
  • Blake-Haydon/vlc
  • AnuthaDev/vlc
  • gsoc/gsoc2021/mpd/vlc
  • nicolas_lequec/vlc
  • sambassaly/vlc
  • thresh/vlc
  • bonniegong/vlc
  • myaashish/vlc
  • stavros.vagionitis/vlc
  • ileoo/vlc
  • louis-santucci/vlc
  • cchristiansen/vlc
  • sabyasachi07/vlc
  • AbduAmeen/vlc
  • ashishb0410/vlc
  • urbanhusky/vlc
  • davidepietrasanta/vlc
  • riksleutelstad/vlc
  • jeremyVignelles/vlc
  • komh/vlc
  • iamjithinjohn/vlc
  • JohannesKauffmann/vlc2
  • kunglao/vlc
  • natzberg/vlc
  • jill/vlc
  • cwendling/vlc
  • adufou/vlc
  • ErwanAirone/vlc
  • HasinduDilshan10/vlc
  • vagrantc/vlc
  • rafiv/macos-bigsur-icon
  • Aymeriic/vlc
  • saranshg20/vlc
  • metzlove24/vlc
  • linkfanel/vlc
  • Ds886/vlc
  • metehan-arslan/vlc
  • Skantes/vlc
  • kgsandundananjaya96/vlc
  • mitchcapper/vlc
  • advaitgupta/vlc
  • StefanBruens/vlc
  • ratajs/vlc
  • T.M.F.B.3761/vlc
  • m222059/vlc
  • casemerrick/vlc
  • joshuaword2alt/vlc
  • sjwaddy/vlc
  • dima/vlc
  • Ybalrid/vlc
  • umxprime/vlc
  • eschmidt/vlc
  • vannieuwenhuysenmichelle/vlc
  • badcf00d/vlc
  • wesinator/vlc
  • louis/vlc
  • xqq/vlc
  • EmperorYP7/vlc
  • NicoLiam/vlc
  • loveleen/vlc
  • rofferom/vlc
  • rbultje/vlc
  • TheUnamed/vlc
  • pratiksharma341/vlc
  • Saurab17/vlc
  • purist.coder/vlc
  • Shuicheng/vlc
  • mdrrubel292/vlc
  • silverbleu00/vlc
  • metif12/vlc
  • asher-m/vlc
  • jeffk/vlc
  • Brandonbr1/vlc
  • beautyyuyanli/vlc
  • rego21/vlc
  • muyangren907/vlc
  • collectionbylawrencejason/vlc
  • evelez/vlc
  • GSMgeeth/vlc
  • Oneric/vlc
  • TJ5/vlc
  • XuanTung95/vlc
  • darrenjenny21/vlc
  • Trenly/vlc
  • RockyTDR/vlc
  • mjakubowski/vlc
  • caprica/vlc
  • ForteFrankie/vlc
  • seannamiller19/vlc
  • junlon2006/vlc
  • kiwiren6666/vlc
  • iuseiphonexs/vlc
  • fenngtun/vlc
  • Rajdutt999/vlc
  • typx/vlc
  • leon.vitanos/vlc
  • robertogarci0938/vlc
  • gsoc/gsoc2022/luc65r/vlc-mpd
  • skeller/vlc
  • MCJack123/vlc
  • luc65r/vlc-mpd
  • popov895/vlc
  • claucambra/vlc
  • brad/vlc
  • matthewmurua88/vlc
  • Tomas8874/vlc
  • philenotfound/vlc
  • makita-do3/vlc
  • LZXCorp/vlc
  • mar0x/vlc
  • senojetkennedy0102/vlc
  • shaneb243/vlc
  • ahmadbader/vlc
  • rajduttcse26/vlc-audio-filters
  • Juniorzito8415/vlc
  • achernyakov/vlc
  • lucasjetgroup/vlc
  • pupdoggy666/vlc
  • gmde9363/vlc
  • alexnwayne/vlc
  • bahareebrahimi781/vlc
  • hamad633666/vlc
  • umghof3112/vlc
  • joe0199771874/vlc
  • Octocats66666666/vlc
  • jjm_223/vlc
  • btech10110.19/vlc
  • sunnykfc028/vlc-audio-filters
  • loic/vlc
  • nguyenminhducmx1/vlc
  • JanekKrueger/vlc
  • bstubbington2/vlc
  • rcombs/vlc
  • Ordissimo/vlc
  • king7532/vlc
  • noobsauce101/vlc
  • schong0525/vlc
  • myQwil/vlc
  • apisbg91/vlc
  • geeboy0101017/vlc
  • kim.faughey/vlc
  • nurupo/vlc
  • yyusea/vlc
  • 0711235879.khco/vlc
  • ialo/vlc
  • iloveyeye2/vlc
  • gdtdftdqtd/vlc
  • leandroconsiglio/vlc
  • AndyHTML2012/vlc
  • ncz/vlc
  • lucenticus/vlc
  • knr1931/vlc
  • kjoonlee/vlc
  • chandrakant100/vlc-qt
  • johge42/vlc
  • polter/vlc
  • hexchain/vlc
  • Tushwrld/vlc
  • mztea928/vlc
  • jbelloncastro/vlc
  • alvinhochun/vlc
  • ghostpiratecrow/vlc
  • ujjwaltwitx/vlc
  • alexsonarin06/vlc
  • adrianbon76/vlc
  • altsod/vlc
  • damien.lucas44/vlc
  • dmytrivtaisa/vlc
  • utk202/vlc
  • aaxhrj/vlc
  • thomas.hermes/vlc
  • structurenewworldorder/vlc
  • slomo/vlc
  • wantlamy/vlc
  • musc.o3cminc/vlc
  • thebarshablog/vlc
  • kerrick/vlc
  • kratos142518/vlc
  • leogps/vlc
  • vacantron/vlc
  • luna_koly/vlc
  • Ratio2/vlc
  • anuoshemohammad/vlc
  • apsun/vlc
  • aaa1115910/vlc
  • alimotmoyo/vlc
  • Ambossmann/vlc
  • Sam-LearnsToCode/vlc
  • Chilledheart/vlc
  • Labnann/vlc
  • ktcoooot1/vlc
  • mohit-marathe/vlc
  • johnddx/vlc
  • manstabuk/vlc
  • Omar-ahmed314/vlc
  • vineethkm/vlc
  • 9Enemi86/vlc
  • radoslav.m.panteleev/vlc
  • ashishami2002/vlc
  • Corbax/vlc
  • firnasahmed/vlc
  • pelayarmalam4/vlc
  • c0ff330k/vlc
  • shikhindahikar/vlc
  • l342723951/vlc
  • christianschwandner/vlc
  • douniwan5788/vlc
  • 7damian7/vlc
  • ferdnyc/vlc
  • f.ales1/vlc
  • pandagby/vlc
  • BaaBaa/vlc
  • jewe37/vlc
  • w00drow/vlc
  • russelltg/vlc
  • ironicallygod/vlc
  • soumyaDghosh/vlc
  • linzihao1999/vlc
  • deyayush6/vlc
  • mibi88/vlc
  • newabdallah10/vlc
  • jhorbincolombia/vlc
  • rimvihaqueshupto/vlc
  • andrewkhon98/vlc
  • fab78/vlc
  • lapaz17/vlc
  • amanna13/vlc
  • mdakram28/vlc
  • 07jw1980/vlc
  • sohamgupta/vlc
  • Eson-Jia1/vlc
  • Sumou/vlc
  • vikram-kangotra/vlc
  • chalice191/vlc
  • olivercalder/vlc
  • aaasg4001/vlc
  • zipdox/vlc
  • kwizart/vlc
  • Dragon-S/vlc
  • jdemeule/vlc
  • gabriel_lt/vlc
  • locutusofborg/vlc
  • sammirata/vlc-librist
  • another/vlc
  • Benjamin_Loison/vlc
  • ahmedmoselhi/vlc
  • petergaal/vlc
  • huynhsontung/vlc
  • dariusmihut/vlc
  • tvermaashutosh/vlc
  • buti/vlc
  • Niram7777/vlc
  • rohan-here/vlc
  • balaji-sivasakthi/vlc
  • rlindner81/vlc
  • Kakadus/vlc
  • djain/vlc
  • ABBurmeister/vlc
  • craighuggins/vlc
  • orbea/vlc
  • maxos/vlc
  • aakarshmj/vlc
  • kblaschke/vlc
  • ankitm/vlc
  • advait-0/vlc
  • mohak2003/vlc
  • yselkowitz/vlc
  • AZM999/vlc-azm
  • andrey.turkin/vlc
  • Disha-Baghel/vlc
  • nowrep/vlc
  • Apeng/vlc
  • Choucroute_melba/vlc
  • autra/vlc
  • eclipseo/vlc
  • fhuber/vlc
  • olafhering/vlc
  • sdasda7777/vlc
  • 1div0/vlc
  • skosnits/vlc-extended-playlist-support
  • dnicolson/vlc
  • Timshel/vlc
  • octopols/vlc
  • MangalK/vlc
  • nima64/vlc
  • misawai/vlc
  • Alexander-Wilms/vlc
  • Maxime2/vlc-fork-for-visualizer
  • ww/vlc
  • jeske/vlc
  • sgross-emlix/vlc
  • morenonatural/vlc
  • freakingLovesVLC/vlc
  • borisgolovnev/vlc
  • mpromonet/vlc
  • diogo.simao-marques/vlc
  • masstock/vlc
  • pratikpatel8982/vlc
  • hugok79/vlc
  • longervision/vlc
  • abhiudaysurya/vlc
  • rishabhgarg/vlc
  • tumic/vlc
  • cart/vlc
  • shubham442/vlc
  • Aditya692005/vlc
  • sammirata/vlc4
  • syrykh/vlc
  • Vvorcun/macos-new-icon
  • AyaanshC/vlc
  • nasso/vlc
  • Quark/vlc
  • sebastinas/vlc
  • rhstone/vlc
  • talregev/vlc
  • Managor/vlc
  • abdsaber000/vlc
  • falbrechtskirchinger/vlc
  • b.sullender/vlc
  • hulxv/vlc
  • zyad-ayad/vlc
  • shocknovaa/vlc
  • gremlinflat/vlc
  • Pratham24D/vlc
411 results
Show changes
Commits on Source (2)
  • Steve Lhomme's avatar
    thread: add a function to give names to threads · a94b5e54
    Steve Lhomme authored
    Given the amount of threads used by VLC it can be useful to known which thread
    is what when debugging or in a backtrace (especially if the stack is bogus, we
    can get a hint at where the thread comes from).
    
    This feature is supported in the Windows debugger when used on Windows 10 1607
    and upper. There might be support in gdb on other platforms as well.
    
    The posix variants comes from dav1d.
    a94b5e54
  • Steve Lhomme's avatar
    f896e42e
Showing with 97 additions and 2 deletions
......@@ -631,6 +631,16 @@ VLC_API void *vlc_threadvar_get(vlc_threadvar_t);
VLC_API int vlc_clone(vlc_thread_t *th, void *(*entry)(void *),
void *data) VLC_USED;
/**
* Set the thread name of the current thread.
*
* \param name the string to use as the thread name
*
* \note On Linux the name can be up to 16-byte long, including the terminating
* nul character. If larger, the name will be truncated.
*/
VLC_API void vlc_thread_set_name(const char *name);
/**
* Marks a thread as cancelled.
*
......
......@@ -466,7 +466,8 @@ endif
if HAVE_DARWIN
libvlccore_la_SOURCES += \
darwin/error.c \
darwin/specific.c
darwin/specific.c \
darwin/thread.c
libvlccore_objc_la_SOURCES = \
darwin/dirs.m \
darwin/netconf.m
......
/*****************************************************************************
* darwin/thread.c: Darwin specifics for threading
*****************************************************************************
* Copyright (C) 2022 - VideoLabs, VLC authors and VideoLAN
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <vlc_common.h>
#include <vlc_threads.h>
void vlc_thread_set_name(const char *name)
{
pthread_setname_np(name);
}
......@@ -28,6 +28,7 @@
#include <limits.h>
#include <sys/types.h>
#include <pthread.h>
#include <pthread_np.h>
#include <sys/thr.h>
#include <sys/umtx.h>
......@@ -44,6 +45,11 @@ unsigned long vlc_thread_id(void)
return tid;
}
void vlc_thread_set_name(const char *name)
{
pthread_set_name_np(pthread_self(), name);
}
static int vlc_umtx_wake(void *addr, int nr)
{
return _umtx_op(addr, UMTX_OP_WAKE_PRIVATE, nr, NULL, NULL);
......
......@@ -1652,6 +1652,8 @@ static void *DecoderThread( void *p_data )
vlc_tick_t delay = 0;
bool paused = false;
vlc_thread_set_name("vlc-decoder");
/* The decoder's main loop */
vlc_fifo_Lock( p_owner->p_fifo );
......
......@@ -53,6 +53,8 @@ struct vlc_demux_chained_t
static void *vlc_demux_chained_Thread(void *data)
{
vlc_thread_set_name("vlc-demux-chain");
vlc_demux_chained_t *dc = data;
demux_t *demux = demux_New(VLC_OBJECT(dc->reader), dc->name, "vlc://nop",
dc->reader, dc->out);
......
......@@ -1089,6 +1089,8 @@ static int TsChangeRate( ts_thread_t *p_ts, float src_rate, float rate )
static void *TsRun( void *p_data )
{
vlc_thread_set_name("vlc-timeshift");
ts_thread_t *p_ts = p_data;
vlc_tick_t i_buffering_date = -1;
......
......@@ -419,6 +419,8 @@ static void *Run( void *data )
input_thread_private_t *priv = data;
input_thread_t *p_input = &priv->input;
vlc_thread_set_name("vlc-input");
vlc_interrupt_set(&priv->interrupt);
if( !Init( p_input ) )
......@@ -438,6 +440,8 @@ static void *Preparse( void *data )
input_thread_private_t *priv = data;
input_thread_t *p_input = &priv->input;
vlc_thread_set_name("vlc-preparse");
vlc_interrupt_set(&priv->interrupt);
if( !Init( p_input ) )
......
......@@ -238,6 +238,8 @@ int vlm_ExecuteCommand( vlm_t *p_vlm, const char *psz_command,
*****************************************************************************/
static void* Manage( void* p_object )
{
vlc_thread_set_name("vlc-vlm");
vlm_t *vlm = (vlm_t*)p_object;
time_t lastcheck;
bool exiting;
......@@ -773,7 +775,7 @@ static int vlm_ControlMediaInstanceGetTimePosition( vlm_t *p_vlm, int64_t id, co
vlc_player_Lock(p_instance->player);
if( pi_time )
*pi_time = US_FROM_VLC_TICK(vlc_player_GetTime(p_instance->player));
*pi_time = US_FROM_VLC_TICK(vlc_player_GetTime(p_instance->player));
if( pd_position )
*pd_position = vlc_player_GetPosition(p_instance->player);
vlc_player_Unlock(p_instance->player);
......
......@@ -636,6 +636,7 @@ vlc_interrupt_register
vlc_interrupt_unregister
vlc_killed
vlc_join
vlc_thread_set_name
vlc_list_children
vlc_meta_AddExtra
vlc_meta_CopyExtraNames
......
......@@ -28,6 +28,7 @@
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/prctl.h>
#include <sys/syscall.h>
#include <linux/futex.h>
......@@ -50,6 +51,11 @@ unsigned long vlc_thread_id(void)
return tid;
}
void vlc_thread_set_name(const char *name)
{
prctl(PR_SET_NAME, name);
}
static int sys_futex(void *addr, int op, unsigned val,
const struct timespec *to, void *addr2, int val3)
{
......
......@@ -330,6 +330,8 @@ static void finder_thread_interrupted( void* p_data )
static void *FinderThread( void *p_data )
{
vlc_thread_set_name("vlc-addon-find");
addons_manager_t *p_manager = p_data;
int i_cancel = vlc_savecancel();
vlc_interrupt_set( p_manager->p_priv->finder.p_interrupt );
......@@ -456,6 +458,8 @@ static void installer_thread_interrupted( void* p_data )
static void *InstallerThread( void *p_data )
{
vlc_thread_set_name("vlc-addon-instl");
addons_manager_t *p_manager = p_data;
int i_cancel = vlc_savecancel();
vlc_interrupt_set( p_manager->p_priv->installer.p_interrupt );
......
......@@ -119,6 +119,8 @@ ThreadRun(void *userdata)
struct vlc_executor_thread *thread = userdata;
vlc_executor_t *executor = thread->owner;
vlc_thread_set_name("vlc-exec-runner");
vlc_mutex_lock(&executor->lock);
struct vlc_runnable *runnable;
......
......@@ -412,6 +412,8 @@ void update_Check( update_t *p_update, void (*pf_callback)( void*, bool ), void
void* update_CheckReal( void *obj )
{
vlc_thread_set_name("vlc-updater-chk");
update_check_thread_t *p_uct = (update_check_thread_t *)obj;
bool b_ret;
int canc;
......@@ -524,6 +526,8 @@ void update_Download( update_t *p_update, const char *psz_destdir )
static void* update_DownloadReal( void *obj )
{
vlc_thread_set_name("vlc-updater-dl");
update_download_thread_t *p_udt = (update_download_thread_t *)obj;
uint64_t l_size;
uint64_t l_downloaded = 0;
......
......@@ -2054,6 +2054,8 @@ static void httpdLoop(httpd_host_t *host)
static void* httpd_HostThread(void *data)
{
vlc_thread_set_name("vlc-httpd");
httpd_host_t *host = data;
while (atomic_load_explicit(&host->ref, memory_order_relaxed) > 0)
......
......@@ -509,6 +509,11 @@ unsigned long vlc_thread_id (void)
return _gettid();
}
void vlc_thread_set_name(const char *name)
{
VLC_UNUSED(name);
}
/*** Thread cancellation ***/
/* APC procedure for thread cancellation */
......
......@@ -200,6 +200,8 @@ vlc_player_destructor_Thread(void *data)
{
vlc_player_t *player = data;
vlc_thread_set_name("vlc-player-end");
vlc_mutex_lock(&player->lock);
/* Terminate this thread when the player is deleting (vlc_player_Delete()
......
......@@ -42,6 +42,8 @@ struct vlc_gai_req
static void *vlc_gai_thread(void *data)
{
vlc_thread_set_name("vlc-getaddrinfo");
struct vlc_gai_req *req = data;
req->error = EAI_SYSTEM;
......
......@@ -204,6 +204,11 @@ VLC_WEAK unsigned long vlc_thread_id(void)
return (uintptr_t)(void *)&dummy;
}
VLC_WEAK void vlc_thread_set_name(const char *name)
{
VLC_UNUSED(name);
}
void vlc_cancel(vlc_thread_t th)
{
pthread_cancel(th.handle);
......
......@@ -52,6 +52,8 @@ struct vlc_timer
static void *vlc_timer_thread (void *data)
{
vlc_thread_set_name("vlc-timer");
struct vlc_timer *timer = data;
vlc_mutex_lock (&timer->lock);
......