Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
project
drupal
Commits
d672d203
Commit
d672d203
authored
Jan 11, 2013
by
catch
Browse files
Issue
#1825450
by Berdir, znerol: Use lock service in lock().
parent
579c3ba7
Changes
7
Hide whitespace changes
Inline
Side-by-side
core/includes/bootstrap.inc
View file @
d672d203
...
...
@@ -3495,27 +3495,7 @@ function drupal_check_memory_limit($required, $memory_limit = NULL) {
* @return Drupal\Core\Lock\LockBackendInterface
*/
function
lock
()
{
$lock_backend
=
&
drupal_static
(
__FUNCTION__
);
if
(
!
isset
(
$lock_backend
))
{
$class_name
=
variable_get
(
'lock_backend'
,
'Drupal\Core\Lock\DatabaseLockBackend'
);
// Do not allow a WSOD here, if the class does not exists use the default
// one.
// @todo We should log failed class loading for debugging, but for that we
// need an early watchdog function that logs into a file if the database
// is not present.
if
(
class_exists
(
$class_name
))
{
$lock_backend
=
new
$class_name
();
}
else
{
$lock_backend
=
new
DatabaseLockBackend
();
}
drupal_register_shutdown_function
(
array
(
$lock_backend
,
'releaseAll'
));
}
return
$lock_backend
;
return
drupal_container
()
->
get
(
'lock'
);
}
/**
...
...
core/includes/install.core.inc
View file @
d672d203
...
...
@@ -338,6 +338,14 @@ function install_begin_request(&$install_state) {
$container
->
register
(
'config.factory'
,
'Drupal\Core\Config\ConfigFactory'
)
->
addArgument
(
new
Reference
(
'config.storage'
))
->
addArgument
(
new
Reference
(
'event_dispatcher'
));
// The install process cannot use the database lock backend since the database
// is not fully up, so we use a null backend implementation during the
// installation process. This will also speed up the installation process.
// The site being installed will use the real lock backend when doing AJAX
// requests but, except for a WSOD, there is no chance for a a lock to stall
// (as opposed to the cache backend) so we can afford having a null
// implementation here.
$container
->
register
(
'lock'
,
'Drupal\Core\Lock\NullLockBackend'
);
drupal_container
(
$container
);
}
...
...
@@ -353,15 +361,6 @@ function install_begin_request(&$install_state) {
require_once
DRUPAL_ROOT
.
'/core/includes/cache.inc'
;
$conf
[
'cache_classes'
]
=
array
(
'cache'
=>
'Drupal\Core\Cache\MemoryBackend'
);
// The install process cannot use the database lock backend since the database
// is not fully up, so we use a null backend implementation during the
// installation process. This will also speed up the installation process.
// The site being installed will use the real lock backend when doing AJAX
// requests but, except for a WSOD, there is no chance for a a lock to stall
// (as opposed to the cache backend) so we can afford having a null
// implementation here.
$conf
[
'lock_backend'
]
=
'Drupal\Core\Lock\NullLockBackend'
;
// Prepare for themed output. We need to run this at the beginning of the
// page request to avoid a different theme accidentally getting set. (We also
// need to run it even in the case of command-line installations, to prevent
...
...
core/lib/Drupal/Core/Lock/DatabaseLockBackend.php
View file @
d672d203
...
...
@@ -14,6 +14,15 @@
*/
class
DatabaseLockBackend
extends
LockBackendAbstract
{
/**
* Constructs a new DatabaseLockBackend.
*/
public
function
__construct
()
{
// __destruct() is causing problems with garbage collections, register a
// shutdown function instead.
drupal_register_shutdown_function
(
array
(
$this
,
'releaseAll'
));
}
/**
* Implements Drupal\Core\Lock\LockBackedInterface::acquire().
*/
...
...
core/modules/simpletest/lib/Drupal/simpletest/DrupalUnitTestBase.php
View file @
d672d203
...
...
@@ -132,7 +132,7 @@ public function containerBuild($container) {
global
$conf
;
// Keep the container object around for tests.
$this
->
container
=
$container
;
$con
f
[
'lock_backend'
]
=
'Drupal\Core\Lock\NullLockBackend'
;
$con
tainer
->
register
(
'lock'
,
'Drupal\Core\Lock\NullLockBackend'
)
;
$conf
[
'cache_classes'
]
=
array
(
'cache'
=>
'Drupal\Core\Cache\MemoryBackend'
);
$container
->
register
(
'config.storage'
,
'Drupal\Core\Config\FileStorage'
)
...
...
core/modules/simpletest/lib/Drupal/simpletest/TestBase.php
View file @
d672d203
...
...
@@ -866,6 +866,11 @@ protected function prepareEnvironment() {
// Create and set new configuration directories.
$this
->
prepareConfigDirectories
();
// Reset statics before the old container is replaced so that objects with a
// __destruct() method still have access to it.
// @todo: Remove once they have been converted to services.
drupal_static_reset
();
// Reset and create a new service container.
$this
->
container
=
new
ContainerBuilder
();
drupal_container
(
$this
->
container
);
...
...
core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
View file @
d672d203
...
...
@@ -808,9 +808,8 @@ protected function setUp() {
$batch
=
&
batch_get
();
$batch
=
$this
->
originalBatch
;
// Revert install_begin_request() cache
and lock
service overrides.
// Revert install_begin_request() cache service overrides.
unset
(
$conf
[
'cache_classes'
]);
unset
(
$conf
[
'lock_backend'
]);
// Set path variables.
...
...
core/modules/system/lib/Drupal/system/Tests/Upgrade/UpgradePathTestBase.php
View file @
d672d203
...
...
@@ -180,8 +180,8 @@ protected function variable_set($name, $value) {
* Specialized refreshVariables().
*/
protected
function
refreshVariables
()
{
//
No operation if the child has not been
upgraded
yet
.
if
(
!
$this
->
upgradedSite
)
{
//
Refresh the variables only if the site was already
upgraded.
if
(
$this
->
upgradedSite
)
{
global
$conf
;
cache
(
'bootstrap'
)
->
delete
(
'variables'
);
$conf
=
variable_initialize
();
...
...
@@ -263,6 +263,9 @@ protected function performUpgrade($register_errors = TRUE) {
// of the child site directly from this request.
$this
->
upgradedSite
=
TRUE
;
// Force a variable refresh as we only just enabled it.
$this
->
refreshVariables
();
// Reload module list for modules that are enabled in the test database
// but not on the test client.
system_list_reset
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment