diff options
| author | 2020-10-06 23:19:45 +0200 | |
|---|---|---|
| committer | 2020-10-06 23:19:45 +0200 | |
| commit | 0319cc9d234e107109d988f36f2361b25f9f0777 (patch) | |
| tree | e373d93694297e36056d9888141d3233d0686260 /lib/Minz/Request.php | |
| parent | 3aed0b95534c60b26254292e951c8a9c5badc786 (diff) | |
Minz allow parallel sessions (#3096)
* Minz allow parallel sessions
#fix https://github.com/FreshRSS/FreshRSS/issues/3093
* Array optimisation
* Array optimisation missing
* Reduce direct access to $_SESSION except in install process
* Fix session start headers warning
* Use cookie only the first time the session is started:
`PHP Warning: session_start(): Cannot start session when headers
already sent in /var/www/FreshRSS/lib/Minz/Session.php on line 39`
* New concept of volatile session for API calls
Optimisation: do not use cookies or local storage at all for API calls
without a Web session
Fix warning:
```
PHP Warning: session_destroy(): Trying to destroy uninitialized session
in Unknown on line 0
```
* Only call Minz_Session::init once in our index
It was called twice (once indirectly via FreshRSS->init())
* Whitespace
* Mutex for notifications
Implement mutex for notifications
https://github.com/FreshRSS/FreshRSS/pull/3208#discussion_r499509809
* Typo
* Install script is not ready for using Minz_Session
Diffstat (limited to 'lib/Minz/Request.php')
| -rw-r--r-- | lib/Minz/Request.php | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/Minz/Request.php b/lib/Minz/Request.php index fc333244f..271bcf738 100644 --- a/lib/Minz/Request.php +++ b/lib/Minz/Request.php @@ -269,13 +269,14 @@ class Minz_Request { } private static function setNotification($type, $content) { - //TODO: Will need to ensure non-concurrency when landing https://github.com/FreshRSS/FreshRSS/pull/3096 + Minz_Session::lock(); $requests = Minz_Session::param('requests', []); $requests[self::requestId()] = [ 'time' => time(), 'notification' => [ 'type' => $type, 'content' => $content ], ]; Minz_Session::_param('requests', $requests); + Minz_Session::unlock(); } public static function setGoodNotification($content) { @@ -288,7 +289,7 @@ class Minz_Request { public static function getNotification() { $notif = null; - //TODO: Will need to ensure non-concurrency when landing https://github.com/FreshRSS/FreshRSS/pull/3096 + Minz_Session::lock(); $requests = Minz_Session::param('requests'); if ($requests) { //Delete abandonned notifications @@ -301,6 +302,7 @@ class Minz_Request { } Minz_Session::_param('requests', $requests); } + Minz_Session::unlock(); return $notif; } |
