1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00
Commit Graph

7793 Commits

Author SHA1 Message Date
sudden6
dfeca3e906
fix(coreav): prevent racy access to call variable
(cherry picked from commit c507d2665d)
2020-03-20 02:07:19 -07:00
sudden6
26fcea0639
fix(coreav): change some lock to write locks
I missed some cases where data was written.

(cherry picked from commit dfcfb7d5e0)
2020-03-20 02:07:19 -07:00
sudden6
e340688b94
fix(coreav): fix assert because c-toxcore calls from unexpected thread
c-toxcore calls the groupCallCallback from it's main thread instead of
the ToxAV thread as expected, this was triggering an assertion.

Aditionally the destructors of Core and CoreAV were fixed, because they
now either crashed or deadlocked qTox when it was closed while a group
call was still running.

(cherry picked from commit 141cbf8870)
2020-03-20 02:07:18 -07:00
sudden6
723a8e5dc7
fix(coreav): avoid deadlock between CoreAV, main and Audio thread
This actually fixes two problems:

1) CoreAV and Audio thread both locked the callsLock and audioLock in
different orders, resulting in a deadlock of both threads. This fixed by
using a ReadWriteLock in the CoreAV thread.

2) Multiple functions were emitting signals while holding a lock. This
is unsafe, because the connected slot may acquire any other lock. This
is fixed by releasing the locks before emitting signals.

(cherry picked from commit 4b9e4a571d)
2020-03-20 02:07:18 -07:00
sudden6
a4ac6d67c7
fix(coreav): cleanup assertions
It doesn't really make sense to assert that the callbacks are coming
from any other thread than CoreAV, when we actually want to ensure the
callback is coming from Core thread.

Remove over agressive assert from sendGroupCallAudio(...), this function
should be callable from any thread.

(cherry picked from commit 9499925fb2)
2020-03-20 02:07:18 -07:00
sudden6
89400c91f7
refactor: properly lock against Core thread
We we're calling toxav_* functions without synchronizing to any of the
Tox threads.

Additionally remove the call timeout, it creates timers from different
threads, which causes errors.

(cherry picked from commit 98cfe9838f)
2020-03-20 02:07:17 -07:00
sudden6
8e54805e7d
feat(coreav): add assertions to check for threading errors 2020-03-20 02:06:49 -07:00
sudden6
cf402bd11c
refactor(coreav): simplify start sequence
(cherry picked from commit c332cc0cca)
2020-03-20 02:05:47 -07:00
sudden6
f72b3397a5
refactor(coreav): move threading of CoreAV to single mutex
Use a standard mutex instead of trying to build proper locking
ourselfes.

(cherry picked from commit 2bc0057bbd)
2020-03-20 02:05:47 -07:00
Anthony Bilinski
e5a6708877
Merge branch 'v1.17-dev' 2020-03-19 13:21:14 -07:00
sudden6
71b5c50ac6
chore(flatpak): reduce difference to Flathub build
(cherry picked from commit 58ee2feea8)
2020-03-19 13:20:16 -07:00
sudden6
55b1f6af25
fix(flatpak): workaround unstable flathub downloads
works around https://github.com/flathub/flathub/issues/845

(cherry picked from commit 69677831ab)
2020-03-19 13:19:54 -07:00
sudden6
4345fafbc6
Merge pull request #6005
Jimi Huotari (1):
      refactor(Qt): fix build with Qt 5.15
2020-03-19 01:22:31 +01:00
sudden6
ad139d67c2
fix: add missing type for Qt slot 2020-03-17 18:06:21 +01:00
Jimi Huotari
6d51971c6f refactor(Qt): fix build with Qt 5.15
This fixes compile-time warnings about deprecated functions when
building with Qt 5.15.
2020-03-17 13:31:36 +02:00
sudden6
6b468e41fa
fix(toxcall): move ToxCall ownership to correct Thread
Makes the CoreAV thread own all ToxCalls in order to prevent signals
from being emitted via a Direct connection from Audio to CoreAV.
2020-03-17 11:56:56 +01:00
sudden6
58ee2feea8
chore(flatpak): reduce difference to Flathub build 2020-03-16 23:57:59 +01:00
sudden6
69677831ab
fix(flatpak): workaround unstable flathub downloads
works around https://github.com/flathub/flathub/issues/845
2020-03-16 00:28:04 +01:00
sudden6
f2fa601073
fix(chatlog): fix stick to bottom behavior
This commit fixes the behavior when a message is received while the
chatlog is scrolled to the bottom. With this change, the chatlog will
stick to the bottom when it is scrolled all the way down. If it is
somewhere in the middle (e.g. for search) the chatlog will not change
its position.
2020-03-15 16:45:09 +01:00
Anthony Bilinski
0b5f751104
fix(core): message when peer changes group name
boolean inversion in getGroupPeerName caused it to always return empty string

Fix #6001
2020-03-15 01:29:11 -07:00
Anthony Bilinski
564b1eb2a6
Merge branch 'v1.17-dev' 2020-03-05 11:48:09 -08:00
Anthony Bilinski
871b363b6d
chore: update wording of CI job restart instructions
The tool isn't confused in this case, just cleaning up.
2020-03-03 15:06:07 -08:00
sudden6
bf3921ce94
fix(toxcall): handle Null sink correctly
This was introduced in 82a4f1b412
2020-03-03 19:49:13 +01:00
sudden6
7e4f7f0489
fix: remove unused variables 2020-03-03 00:38:53 -08:00
sudden6
1158faee07
chore: update copyright date in About 2020-03-03 00:38:45 -08:00
Maxim Biro
9ca34ab5e8
chore(windows): update VPX to 1.8.2 2020-03-03 00:38:35 -08:00
Maxim Biro
cfe4d4bbb1
chore(windows): update FFmpeg to 4.2.2 2020-03-03 00:38:35 -08:00
Maxim Biro
d6299b6db7
chore(windows): update SQLCipher to 4.3.0 2020-03-03 00:38:35 -08:00
Maxim Biro
14e14e0e26
chore(windows): update Qt to 5.12.7 2020-03-03 00:38:35 -08:00
Maxim Biro
88eba99eb3
chore(travis): update CIRP to v0.2.0 2020-03-03 00:38:28 -08:00
Maxim Biro
e1d1a9fed5
chore(travis): pick any Python 3.x, x>=5 for CIRP 2020-03-03 00:38:28 -08:00
sudden6
3d2dbb63b2
chore: add instructions to restart nigthly builds 2020-03-01 18:16:41 +01:00
sudden6
e67cdadf3d
fix: remove unused variables 2020-03-01 16:59:14 +01:00
sudden6
1f4fee0e4c
chore: update copyright date in About 2020-03-01 00:42:52 +01:00
sudden6
2889ecc09f
Merge pull request #5987
Maxim Biro (2):
      chore(travis): pick any Python 3.x, x>=5 for CIRP
      chore(travis): update CIRP to v0.2.0
2020-02-28 22:59:10 +01:00
sudden6
f406ce64da
Merge pull request #5986
Maxim Biro (4):
      chore(windows): update Qt to 5.12.7
      chore(windows): update SQLCipher to 4.3.0
      chore(windows): update FFmpeg to 4.2.2
      chore(windows): update VPX to 1.8.2
2020-02-28 22:46:25 +01:00
sudden6
08fda121f0
Merge pull request #5982
Mick Sayson (1):
      feat(groups): Allow being in group call if only member
2020-02-28 18:23:21 +01:00
Maxim Biro
12cd2cee85
chore(travis): update CIRP to v0.2.0 2020-02-24 16:39:14 -05:00
Maxim Biro
973996dd41
chore(travis): pick any Python 3.x, x>=5 for CIRP 2020-02-24 16:33:26 -05:00
Maxim Biro
924dfc88d4
chore(windows): update VPX to 1.8.2 2020-02-24 16:05:11 -05:00
Maxim Biro
d26dbbc06d
chore(windows): update FFmpeg to 4.2.2 2020-02-24 16:05:09 -05:00
Maxim Biro
9a899cccee
chore(windows): update SQLCipher to 4.3.0 2020-02-24 16:05:06 -05:00
Maxim Biro
220de0c35f
chore(windows): update Qt to 5.12.7 2020-02-24 16:04:51 -05:00
Mick Sayson
46d57c6864 feat(groups): Allow being in group call if only member
In other applications chatrooms allow you to idle in a call and have
people hop in and out as desired. If a user is the only one presently
online in a group but knows someone will be joining shortly they should
be able to join the call ahead of time.
2020-02-23 11:48:35 -08:00
Anthony Bilinski
13cf04fad9
Merge branch 'v1.17-dev' 2020-02-22 14:18:26 -08:00
Anthony Bilinski
475128d171
fix(ci): quote shell comparison to avoid errors when unset
Avoids log of "/home/travis/.travis/functions: line 109: test: ==: unary
operator expected" in travisci build output
2020-02-22 00:06:07 -08:00
Anthony Bilinski
24e4ec3751
fix(model): take QObject receiver argument to interface signal connection macro
receiver QObject is used by Qt to automatically deregister the connection when
the receiver is destroyed. Forward it on to Qt's connect.
2020-02-06 16:48:56 -08:00
Anthony Bilinski
82a4f1b412
fix(model): stop interfaces from inheriting from QObject
Qt doesn't support QObject multiple inheritance, so use our existing interface
macros to declare signals in the interface without QObject, and implement them
in child classes.
2020-02-06 16:48:56 -08:00
Anthony Bilinski
41b2b35ce3
fix(model): return connection from interface macro
connection is normally returned from Qt's connect, and the caller may want to
track the connection to manually disconnect it.
2020-02-06 16:48:56 -08:00
sudden6
c507d2665d
fix(coreav): prevent racy access to call variable 2020-01-29 22:22:18 +01:00